JRuby調査(続)

JBoss-IDE

なんかハマるのはJBoss周辺である。

JBoss + EJB3.0

JBoss-IDEは捨てて、Eclipse上でEJB3.0のSessionBeanを作ることに。

  • new → EJB3.0 - SessionBean → myejb.ejb.SampleBean
  • デプロイ
    • application.xml手書き
    • .ejb3ファイル、.earファイル手作り
      • それってどうなのよ
  • Javaクライアントから呼び出す
InitialContext ic = new InitialContext();
Sample sample = (Hello)ic.lookup("myejb/SampleBean/remote");
sample.remoteMethod("EJB");
    • lookup()しているときの"ejbdemo"は、earファイルの名前(たぶん)
    • JBoss JMX ConsoleからJNDIのリストを見ると、ejbdemoというEjb Moduleはいない。Global JNDI Namespaceという中にいるので呼べてるんだけど、なぜEjb Moduleとして認識されないのだ?applicatoin.xmlかな。なので、java:comp/env/... ではlookupできない(はず)。
JBoss実行画面:
08:23:56,397 INFO  [STDOUT] remoteMethod invoked. arg=EJB
  • jirbから呼び出す
require 'java'
include_class 'javax.naming.InitialContext'
include_class 'myejb.ejb.Sample'
ctx = InitialContext.new
hello = ctx.lookup('myejb/SampleBean/remote')
hello.remoteMethod('JRuby')
JBoss実行画面:
12:04:33,222 INFO  [STDOUT] remoteMethod invoked. arg=JRuby
    • JBoss-IDE捨てたら1時間かからずにできたよ