S2Hibernate-JPA EA2 を試してみる その2

http://d.hatena.ne.jp/higayasuo/20060127#1138358973
ひがさんありがとうございます。JNDI経由でも動きました。SingletonS2ContainerFactoryが必要な理由もわかりました。

はまったところあたりをメモしときます。

  • InitialContextをnewする前にSingletonS2ContainerFactory.init()すること。JndiContextはSingletonS2ContainerFactoryからすでに生成されているはずのS2Containerを取得しようとするので。
  • S2ContainerFactory.create()で生成したS2Containerをinit()するとデプロイが失敗する。HhibernateがDataSourceをJNDI経由で取得しようとするが、SingletonS2ContainerFactoryで管理されたS2Containerが存在しないため。
  • persistence.xmlの中でhibernate.jndi.classプロパティの値にorg.seasar.extension.j2ee.JndiContextFactoryが指定されている。hibernate.jndi.classプロパティはJNDI InitialContextFactoryを指定するために使う。
  • persistence.xmlの中でDataSourceのJNDI名(j2ee.datasource)が指定されている。
  • S2のデフォルトのコンポーネント名はJBossと違って小文字始まり