2017-09-08 14 views
0

私はアプリケーションをJBoss AS 6からWildfly 10に移行する作業をしています。主な問題は、EntityManagerがEJBに注入されないということです。私はこれをしばらく研究しており、見つけたものすべてを試していますが、何も助けてくれません。WildFly 10でインジェクトされたEntityManagerはnullです

私はまだ問題を再現するための簡単なアプリケーションはありませんが、ここにいくつかの詳細とコードスニペットがあります。

SARファイルを使用して展開しています。これはSpringフレームワークアプリケーションです。私たちの第2レベルのキャッシュは今のところオフになっています。それは私が取り組む必要がある別の問題です。

のpersistence.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<persistence xmlns="http://java.sun.com/xml/ns/persistence" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://java.sun.com/xml/ns/persistence 
       http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" 
     version="1.0"> 
    <persistence-unit name="IpsDb" transaction-type="JTA"> 
    <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider> 
    <jta-data-source>java:jboss/datasources/HarmonyServerDS</jta-data-source> 
    <jar-file>../harmonyserver-model.jar</jar-file> 
    <properties> 
     <!-- pessimistic lock timeout in milliseconds (Integer or String), this is a hint used by Hibernate but requires support by your underlying database. --> 
     <property name="javax.persistence.lock.timeout" value="15000"/> 
     <!-- query timeout in milliseconds (Integer or String), this is a hint used by Hibernate but requires support by your underlying database --> 
     <property name="javax.persistence.query.timeout" value="15000"/> 
     <property name="hibernate.transaction.jta.platform" value="org.hibernate.service.jta.platform.internal.JBossStandAloneJtaPlatform" /> 
     <property name="hibernate.cache.use_query_cache" value="false"/> 
     <property name="hibernate.cache.use_second_level_cache" value="false"/> 
    </properties> 
    </persistence-unit> 
</persistence> 

スタンドアロン-full.xmlからのデータソースのはじまり:

<datasource jta="true" jndi-name="java:jboss/datasources/HarmonyServerDS" pool-name="HarmonyServerDS" enabled="true" use-java-context="true" spy="false" use-ccm="true" connectable="false"> 

EJBクラスから(これらは重要な部分ではなく、すべてのコードのですクラス):

このスニペットの最後にロギングすると、エンティティのMgrとent ityMgrFactoryがnullです。

他にも何か不足していますか?それ以外に役立つと思われるものは何ですか?

答えて

0

問題が見つかりました。 JNDIのBeanの名前を古いフォーマットから新しいフォーマットに変更する必要がありました。私はこれらのいくつかを変更しましたが、このbeanのものは変更しませんでした。 Beanはコンテキストからは見つかりませんでしたので、コード内に新しいBeanが作成されました。私たちはテストケースのためだけにこのコードを持っていますが、私はそれが何をしているのか気づいていませんでした。これでJNDI名が修正されたので、Beanが見つかり、EntityMgrが注入されます。

関連する問題