Jboss 7サーバーで設定されたコンテナ管理データソース( "myDataSource")があります。データソースは正しくデプロイされているようです(管理コンソールから確認しました)。
Springサンプルwebflow-primefaces-showcaseアプリケーションをビルドしてjbossにデプロイしました。デモはデプロイされ、正しく機能しました。デモでjbossデータソースを使用したいのですが、動作させることができません。この時点では、データベースにアクセスするバッキングコードはありません。データソースを正しく構成したいだけです。
oracleドライバーのpom.xmlに依存関係を追加しました
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.1.0.7.0</version>
</dependency>
META-INF/persistence.xmlを作成しました
<persistence-unit name="myDataSource-emf" transaction-type="JTA">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:/myDataSource</jta-data-source>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect"/>
<property name="hibernate.hbm2ddl.auto" value="validate"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="true"/>
<property name="hibernate.use_sql_comments" value="true"/>
<property name="hibernate.default_schema" value="schemaUserName"/>
</properties>
</persistence-unit>
これをweb.xmlに追加しました:
<persistence-unit-ref>
<persistence-unit-ref-name>persistence/myDataSource-emf</persistence-unit-ref-name>
<persistence-unit-name>myDataSource-emf</persistence-unit-name>
</persistence-unit-ref>
今デプロイすると、次のようになります。
"JBAS014771: Services with missing/unavailable dependencies" =>
"jboss.persistenceunit.\"webflow-primefaces-showcase-1.0.0-BUILD-SNAPSHOT.war#myDataSource-emf\
"jboss.naming.context.java.myDataSourceMissing
[jboss.persistenceunit.\"webflow-primefaces-showcase-1.0.0-BUILD-SNAPSHOT.war#myDataSource-emf\
"jboss.naming.context.java.myDataSource]"]}
どこかにjndiリファレンスを追加する必要があります:
<jee:jndi-lookup id="entityManager" jndi-name="java:comp/env/persistence/myDataSource-emf"
expected-type="javax.persistence.EntityManager"/>
しかし、どこにあるのかわかりません。ApplicationContext.xmlを作成する必要がありますか?rootContext.xmlに入れることはできますか?
これら2つを一緒にうまくプレイするにはどうすればよいですか?
私の構成:
- JBoss 7.1
- 春3.1.2
- Spring Web Flow 2.3.1