Java

Spring Boot で 例外ハンドリング

Spring Boot での例外ハンドリングの方法について調べたので、そのメモです。 *1実際に試していないので、問題なく動作するのかはわからないですが、 http://spring.io/blog/2013/11/01/exception-handling-in-spring-mvc の内容でほぼ足りそうです。 例外に…

JavaでARを試してみる

冬休み中にARをやってみようと思い*1、とりあえずサンプルを動かしてみました。Java で使える AR 用のライブラリを探したところ、ARToolkit を Java に移植した NyARToolkit というものがあったので、これを試すことにしました。NyARToolkit は http://nyatl…

共変とか反変とか

共変 Java の型パラメータは共変では無いので、List<Number> に List<Integer> を代入できないのは有名。これを許容していないのは、型の安全性を保つために他ならないのだけど、配列は許容していたりする*1。 Number[] array = new Integer[1]; array[0] = 0.1d; ただ、Java </integer></number>…

Java でパラメタライズされたコレクションをキャストする場合

「Javaでキャストする時」や、「Javaでキャストする時」に便乗。Java の場合、コンパイル後は型パラメータの型情報が無いので、型警告なしにキャストできないのは致し方ない。 id:Yamashiro0217 氏がやっているように、型警告の抑制を一箇所にあつめてキャス…

Jetty + Seasar で LinkageError

S2JDBC を使用している Web アプリを Jetty 上で起動した場合に、以下のような java.lang.LinkageError が発生することがあります。 java.lang.LinkageError: loader constraint violation in interface itable initialization: when resolving method "org.…

バッチファイルでフォルダ内の JAR ファイルすべてをクラスパスに追加する

バッチファイルを二つ作成します。 run.bat - java アプリを実行するバッチファイル addcp.bat - クラスパスの環境変数に JAR ファイルを追加するバッチファイル REM run.bat set CP=classes for %%f in (lib\*.jar) do call addcp.bat %%f java -classpath …

Maven で複数のソースディレクトリを扱う

Mavenのソースディレクトリやっと解決 - まとばと Maven2で複数のソースディレクトリを扱う方法が不明だったけど、http://mojo.codehaus.org/ の Build Helperで出来るみたい。pom.xmlに以下のように記述すればOK。 これで、S2JDBC-Gen で生成したソースを、…

HSQLDBをスタンドアロン(ファイル)モードで使用

hsqldb をスタンドアロンモード(ファイル)で使用していたときに、ものすごく阿呆なことで長らくはまっていたのでメモ。hsqldb の使用を終了するときには、SQL で "SHUTDOWN" を実行するか、あるいは接続時のURLに shutdown=true をつけておく必要があります…

Eclipse で Ajax

Eclipse ganymede の UpdatesSite につないだら、Rich Ajax Platform SDK (RAP)なるプラグインを発見しました。 RAP 自体1年ほど前からあったようなのですが、いままで気づいていませんでした(汗 RCP と類似のアーキテクチャにより Ajax を使用した開発が可…

BlazeDS

http://www.atmarkit.co.jp/news/200712/13/adobe.html去年の12月の記事だけど、ちょっとよさげかも? 時間があったら試してみたいです。だれか、クライアント側の Flex を書いてくれ(wPush 機能に関して Comet のようにって書いてあるのが、HTTP でできるの…

ServiceLoader (via: Servlet Garden @はてな)

SPI (Service Provider Interface) 用のクラスが JDK 1.6 から追加されていたとは知らなかったです。 http://java.sun.com/javase/6/docs/api/java/util/ServiceLoader.html その昔は、自前で META-INF/services 内のファイルを読み込んでサービスをロードし…

JUnit で assertThat が使えるように!!(via: オレンジニュース)

C# でのユニットテストツール NUnit には Assert.That があり、便利だしカッコイイとおもっていたのですが、ついに JUnit にも追加される模様。 http://journal.mycom.co.jp/articles/2007/07/20/junit1/index.htmlNUnit の場合、Assert.That をつかうと、正…

ClassAutoDetector を使ってみた

超べんりっ。詳しくは後日。

Axis2 と Seasar2 の連携

S2Axis が使えればよいのですが Axis2 ではサポートされていなかったので、Axis2 と Spring の連携を参考に自分でやってみました。 参考にした Axis2 + Spring の連携は以下のページ。 http://ws.apache.org/axis2/1_2/spring.html 以下、要点のみ。 S2 は W…

S2でインタータイプ

このままじゃ落ち込みそうなんで、技術ネタでも。S2 で自作インタータイプをつかうには InterTypeインタフェースを実装したクラス、またはAastractInterTypeを継承したクラスを用意 introduce (だっけかな?)メソッドを実装 javassist または AastractInterT…

EasyMock2 の eq について

ちょっとはまったのでメモ。 EasyMock2 では、モックメソッドの呼び出し時に期待している引数が渡されているかどうかをチェックできます。 このとき、引数としてとりうる値を、'EasyMock.and()' や 'EasyMock.or()' 等等を使用して細かく指定することが出来…

Ajax 用ライブラリ

Webアプリに使えるAjaxライブラリ8選! - @IT http://www.atmarkit.co.jp/fwcr/special/ajax_kaitai03/03.html この記事の比較表をみていると、Dojo の一人勝ちのようにも見えるのですが、実際のところはどうなんでしょうね・・・ でも、いいかげん Ajax も…

Chura でのアーキテクチャについて

Teeda + uuji での開発時に、サービス層はないのかな?という疑問があったのですが、ひが氏のブログに答えがありました。 過去のDIではインターフェース中心の設計が強く推奨されていたため、レイヤモデルアーキテクチャは重く感じられても非常にDIにフィット…

Teeda の session について

あと、SessionについてTeedaで誤解されている方がいたので 弁明しておきます。Teedaの内部ではSessionを極力使わないようにしています、 ただしApplicationのコードでSessionを使うのは自由です。 そこにTeedaは介入していないので、ご安心ください。 誤解し…

Seasar カンファレンス

昨日は、Seasar カンファレンスに行ってきました。 印象に残ったり気になったところを箇条書きで。 HOT deploy HOT deploy はイイ感じ。*1かなりスクリプト言語で作業している感じに近いのでは。 Java での Web アプリは、修正してから確認できるまでの作業…

Eclipse 3.2 のバグ?

Generics を使用した以下のコードがあります。 import java.util.EventObject; public class FooEvent extends EventObject { private Class barClazz; public FooEvent(Bar bar) { super (bar); this.barClazz = bar.getClass(); } @Override public Bar ge…

Easy2

つい先日、ようやく EasyMock の 2.x 系を使用しました。 なんで、いままで使わなかったのかと後悔するぐらい、( ・∀・)イイ!ですね。1.x 系とは比べ物にならないぐらい、手軽に使えます。 import static をうまいこと利用していることも大きいですね。いずれ…

JSP と Velocity

よく、JSP を嫌うひとを見かけますが、理由を聞くと多くの場合は、「JSPコンテナがないと動作しない」ということにあるようです。 で、代替案を聞くとほとんどの場合に「Velocity」と答えられます。でも、私の感覚では、Velocity は JSP コンテナが無くても…

TomcatでJSPディレクティブの余計な改行を出力しない方法 (via:OZACC.blog)

JSP から HTML が出力されるときに、ディレクティブ ( とかのアレです)の部分がひたすら空行になってしまい、いやな思いをしている人に朗報です。どうやら消せるようです。詳しくはリンク先を参照してください。 これで、無意味な空行の連続から抜け出せるか…

OSCache

最近、人の作成した Web アプリを覗くと、たびたび目にする oscache って何なのか、ちょっと調べてみた。http://codezine.jp/a/article.aspx?aid=296ユーザ登録しないと全部読めないですが、とりあえず上記 URL のページを読んでみました。 oscache って名前…

第三のXMLパーサ StAX

http://www.javainthebox.net/laboratory/JavaSE6/stax/stax.html そういえば、ちょっとまえに目にして気になっていたけど、すっかり忘れてた(汗 DOM じゃイヤ、でも SAX は扱いづらい・・・という時にぴったしです。 設定ファイルから、定義情報を保持する…

S2Dao でバグ発見?

最近、仕事で S2Dao を使用していたのですが、バグらしきものを見つけました。メソッドの戻り値型とエンティティ型が継承関係にある場合に、配列を返すメソッドの場合は正しく動作しないというものです。 たとえば、IWMember というインタフェースが存在し、…

EasyMock 2.x

天使&カイザーのよういちろう氏から知らされるまで気づいていなかったのですが、EasyMock がいつのまにやら 2.x 系列になっているんですね。なにやら機能が増えている模様。IAnswer とかいるし。 ドキュメントによれば、1.x への互換性は保っているそうなの…

セルサイズの制限を受けないテーブルセルエディタ

最近、Swing を使用しての GUI アプリケーションを仕事で作ってます。先週は、1文字ぐらいしか入らないセルに対する編集を行なうためのセルエディタを作成してました。 セルエディタが起動されるとセルと同じ位置にウィンドウを表示し、セルエディタに対する…

Seasar に HotDeploy 搭載らしいです。

表題のとおりなのですが、HotDeploy が可能になったそうです。 http://d.hatena.ne.jp/higayasuo/20060508#1147081800かなりよさげですね。たとえば Web アプリケーションを作成しているならば、Tomcat 等への再デプロイを行なうことなく、即座に変更を反映…