NetBeansを使う理由として最も簡単にGlassfishとEJBのサポートが得られるということがあるとおもう。他の環境ではEJBやアプリケーションサーバーは重い開発、というイメージが先行しそうだがNetBeansで扱う限りそれはない。
それは非同期の処理を行うメッセージ駆動ビーン(MDB)においても同じ。jmsのリソース等もすべて自動で作られるため、開発者はコードのみに専念できる。
のだが、MDBで実際に実行してみるとへんなメッセージがログに現れる。
DirectConsumer:Caught Exception delivering messagecom.sun.messaging.jmq.io.Packet cannot be cast to com.sun.messaging.jms.ra.DirectPacket
どうやらこれはJMSのタイプを変えることで解決されるらしい。かえる場所はここ。
デフォルトだと「Embedded」だがこれを「Local」に変更するとこのメッセージは出なくなる。MDB自体は問題なく動いているぽいから問題はないのかもしれないがこの初期値はどういう意味があるんだろう・・・。