java - WildFly में jpa datasources नक्शा कैसे करें?



jboss (0)

मेरे पास जेपीए के साथ एक ईजेबी 3.1 आवेदन है, @ स्टैटलेस बीन में एक एंटीटी मैनेजर है और डेस्टिसेंस के लिए java: comp / env / jf / demo / ds jndi का इस्तेमाल करने के लिए persistence.xml को कॉन्फ़िगर किया गया है।

Ejb-jar.xml में मैंने घोषित किया है कि मेरी ईजेबी को जेएफ / डेमो / डीएस की आवश्यकता है और आईबीएम परिनियोजन डिस्क्रिप्टर में मैं जेएफआई / डेमो / डीएस को डाटाएसओएस के वास्तविक जेएनडीआई नाम के अनुसार मैप कर रहा हूं। यह वेबस्प्रेयर पर काम कर रहा है, लेकिन मुझे इसे WildFly 10 / JBoss EAP 7 पर भी काम करने की आवश्यकता है

मैंने कुछ उदाहरण jboss.xml मानचित्रण फ़ाइल के साथ मिल चुके हैं लेकिन WildFly को jboss-ejb3.xml की आवश्यकता है और मुझे डेटासॉर मैपिंग के साथ कोई काम करने वाला उदाहरण नहीं मिल सकता है।

मेरा ईजेबी:

@Stateless
public class CartPersistence extends PersistenceBean {

    @PersistenceContext(unitName = "jf-demo-persistence")
    protected EntityManager _em;
    ...
}

persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
    <persistence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns="http://java.sun.com/xml/ns/persistence"
             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
             version="2.0">

    <persistence-unit name="jf-demo-persistence">
        <jta-data-source>java:comp/env/jf/demo/ds</jta-data-source>
        <class>factory.jf.demo.persistence.CartEntity</class>
        <class>factory.jf.demo.persistence.ShopEntity</class>
    </persistence-unit>

</persistence>

EJB-jar.xml

<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee"
         version="3.1"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_1.xsd">
    <module-name>jf-demo-persistence</module-name>
    <enterprise-beans>
        <session>
            <ejb-name>CartPersistence</ejb-name>
            <resource-ref>
                <res-ref-name>jf/demo/ds</res-ref-name>
                <res-type>javax.sql.DataSource</res-type>
            </resource-ref>
        </session>
    </enterprise-beans>
</ejb-jar>

ibm-ejb-jar-bnd.xml (केवल WAS के लिए)

<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar-bnd xmlns="http://websphere.ibm.com/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee
             http://websphere.ibm.com/xml/ns/javaee/ibm-ejb-jar-bnd_1_0.xsd" version="1.0">
    <session name="CartPersistence">
        <resource-ref name="jf/demo/ds" binding-name="jf/ds"/>
    </session>
</ejb-jar-bnd>

jboss-ejb3.xml (काम नहीं कर रहा है, टैग स्कीमा में मौजूद नहीं है)

<?xml version="1.0" encoding="UTF-8"?>
<jboss:ejb-jar xmlns:jboss="http://www.jboss.com/xml/ns/javaee"
               xmlns="http://java.sun.com/xml/ns/javaee"
               xmlns:iiop="urn:iiop"
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xsi:schemaLocation="http://www.jboss.com/xml/ns/javaee http://www.jboss.org/j2ee/schema/jboss-ejb3-2_0.xsd
http://java.sun.com/xml/ns/javaee http://www.jboss.org/j2ee/schema/jboss-ejb3-spec-2_0.xsd
urn:iiop jboss-ejb-iiop_1_0.xsd"
               version="3.1"
               impl-version="2.0">
    <enterprise-beans>
        <session>
            <ejb-name>CartPersistence</ejb-name>
            <resource-ref>
                <res-ref-name>jf/demo/ds</res-ref-name>
                <jndi-name>java:/jf/ds</jndi-name>
            </resource-ref>
        </session>
    </enterprise-beans>
</jboss:ejb-jar>

standalone.xml

 <subsystem xmlns="urn:jboss:domain:datasources:4.0">
        <datasources>
            <datasource jndi-name="java:/jf/ds" pool-name="JfDS">
                <connection-url>jdbc:oracle:thin:@//****/****</connection-url>
                <driver>oracle</driver>
                <security>
                    <user-name>****</user-name>
                    <password>****</password>
                </security>
            </datasource>

जब WildFly शुरू होता है मैं अनुप्रयोग परिनियोजन पर यह त्रुटि प्राप्त करता है:

09:27:03,550 ERROR [org.jboss.as.controller.management-operation] (DeploymentScanner-threads - 1) WFLYCTL0013: Operation ("deploy") failed - address: ([("deployment" => "jf-demo-web.war")]) - failure description: {
    "WFLYCTL0412: Required services that are not installed:" => ["jboss.naming.context.java.module.jf-demo-web.jf-demo-web.env.jf.demo.ds"],
    "WFLYCTL0180: Services with missing/unavailable dependencies" => [
        "jboss.persistenceunit.\"jf-demo-web.war#jf-demo-persistence\".__FIRST_PHASE__ is missing [jboss.naming.context.java.module.jf-demo-web.jf-demo-web.env.jf.demo.ds]",
        "jboss.persistenceunit.\"jf-demo-web.war#jf-demo-persistence\" is missing [jboss.naming.context.java.module.jf-demo-web.jf-demo-web.env.jf.demo.ds]"
    ]
}




jboss