1

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
4

1 に答える 1

0

問題はpersistence.xmlにありました。私はこの行を変更しました:

<jta-data-source>java:/myDataSource</jta-data-source>

に:

<jta-data-source>java:jboss/datasources/myDataSource</jta-data-source>

jndiルックアップをservlet-context.xmlに配置します。

<jee:jndi-lookup id="entityManagerFactory" jndi-name="java:comp/env/persistence/myDataSource-emf" 
            expected-type="javax.persistence.EntityManagerFactory"/>

そして、スキーマ参照を編集して、jndiタグを追加しました。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:faces="http://www.springframework.org/schema/faces"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:jee="http://www.springframework.org/schema/jee"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
        http://www.springframework.org/schema/faces http://www.springframework.org/schema/faces/spring-faces.xsd
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
        http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd">
于 2012-08-13T22:00:33.610 に答える