Ich habe daran gearbeitet, unsere Anwendung von JBoss AS 6 nach Wildfly 10 zu verschieben. Das Hauptproblem, an dem ich feststecke, ist, dass der EntityManager nicht in den EJB injiziert wird. Ich habe das schon eine Weile erforscht und versuche alles, was ich finde, aber nichts hilft.EntityManager ist null, wenn in WildFly injiziert 10 EJB
Ich habe keine einfache Anwendung, um das Problem noch neu zu erstellen, aber hier sind einige Details und Codeschnipsel.
Wir implementieren mithilfe einer SAR-Datei. Dies ist eine Spring Framework-Anwendung. Unser Second-Level-Cache ist vorerst ausgeschaltet. Das ist ein anderes Problem, das ich angehen muss.
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>
Beginn der Datenquelle von Standalone-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">
Von der EJB-Klasse (Das ist die wichtige Teile sind aber nicht die gesamte Code aus die Klasse):
Die Protokollierung am Ende dieses Ausschnitts zeigt, dass die EntitätMgr und ent ityMgrFactory ist null.
Gibt es noch etwas, das ich vermisse? Oder irgendetwas anderes, das ich zeigen könnte, wäre hilfreich?