java ee - How to create JBoss EAR project with JPA, EJB and CDI elements -


i'm trying create ear project ejb, jpa , web elements. have connection database , think works fine. not able @inject beans ejb project.

here's configuration: in ear project earcontent/meta-inf/application.xml:

<?xml version="1.0" encoding="utf-8"?> <application xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemalocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/application_7.xsd" id="application_id" version="7">   <display-name>fantasy</display-name>   <module>     <ejb>fantasyejb.jar</ejb>   </module>   <module>     <web>       <web-uri>fantasyweb.war</web-uri>       <context-root>fantasyweb</context-root>     </web>   </module> </application> 

in ear project earcontent/web-inf/jboss-deployment-structure.xml:

<?xml version="1.0"?> <jboss-deployment-structure>    <deployment>         <exclusions>           <module name="javax.faces.api" />           <module name="com.sun.jsf-impl" />         </exclusions>         <dependencies>           <module name="org.apache.log4j" />           <module name="org.dom4j" />           <module name="org.apache.commons.logging" />           <module name="org.apache.commons.collections" />           <module name="javax.faces.api" />           <module name="com.sun.jsf-impl" />         </dependencies>     </deployment> </jboss-deployment-structure> 

in jpa project file persistence.xml:

<?xml version="1.0" encoding="utf-8"?> <persistence version="2.1"     xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"     xsi:schemalocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">     <persistence-unit name="jpadb">         <jta-data-source>java:jboss/datasources/aghds</jta-data-source>         <properties>             <property name="showsql" value="true"/>             <property name="hibernate.dialect" value="org.hibernate.dialect.mysqldialect" />             <property name="hibernate.hbm2ddl.auto" value="create-drop" />         </properties>     </persistence-unit> </persistence> 

in ejb project ejbmodule/meta-inf/ejb-jar.xml

<?xml version="1.0" encoding="utf-8"?> <ejb-jar version="3.2" xmlns="http://xmlns.jcp.org/xml/ns/javaee"     xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"     xsi:schemalocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/ejb-jar_3_2.xsd">     <display-name>fantasyejb</display-name> </ejb-jar> 

in web project webcontent/web-inf/beans.xml:

<?xml version="1.0" encoding="utf-8"?> <beans xmlns="http://xmlns.jcp.org/xml/ns/javaee"     xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"     xsi:schemalocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"     bean-discovery-mode="all"> </beans> 

now have bean in ejb project testbean.java:

package com.fantasy.beans;  import java.io.serializable; import java.util.list;  import javax.ejb.stateless; import javax.persistence.entitymanager; import javax.persistence.persistencecontext; import javax.persistence.query;  import com.fantasy.db.model.elfs;  @stateless public class testbean implements serializable{      private static final long serialversionuid = 1l;      @persistencecontext(unitname = "jpadb")     private entitymanager em;      public list<elfs> query() {         query query = em.createquery("from com.fantasy.db.model.elfs");          @suppresswarnings("unchecked")         list <elfs> list =  query.getresultlist();         return list;      } } 

and in web project have class producer.java use in jsf page:

package com.fantasy.web;  import java.io.serializable; import java.util.list;  import javax.annotation.postconstruct; import javax.enterprise.context.requestscoped; import javax.enterprise.inject.produces; import javax.inject.inject; import javax.inject.named;  import com.fantasy.beans.testbean; import com.fantasy.db.model.elfs;  @named(value = "blogentrybean") @requestscoped public class producer implements serializable {      private static final long serialversionuid = 1l;      @inject     testbean bean;      private list<elfs> beans;      @produces     @named     public list<elfs> getbeans() {         return beans;     }      public void setbeans(list<elfs> beans) {         this.beans = beans;     }      @postconstruct     public void retrieveallseatsorderedbyname() {         beans = bean.query();       } } 

the problem in annoation @inject. doesn't show errors without it- need synchronize ejb. think might missing dependencies don't know how fix it.

log:

01:14:02,294 info  [org.hibernate.tool.hbm2ddl.schemaexport] (serverservice thread pool -- 50) hhh000227: running hbm2ddl schema export 01:14:02,390 info  [org.hibernate.tool.hbm2ddl.schemaexport] (serverservice thread pool -- 50) hhh000230: schema export complete 01:14:03,033 severe [javax.enterprise.resource.webcontainer.jsf.flow] (msc service thread 1-3) unable obtain cdi 1.1 utilities mojarra 01:14:03,044 severe [javax.enterprise.resource.webcontainer.jsf.application.view] (msc service thread 1-3) unable obtain cdi 1.1 utilities moja rra 01:14:03,173 error [org.jboss.msc.service.fail] (msc service thread 1-3) msc000001: failed start service jboss.deployment.unit."fantasy.ear".weldst artservice: org.jboss.msc.service.startexception in service jboss.deployment.unit."fantasy.ear".weldstartservice: failed start service     @ org.jboss.msc.service.servicecontrollerimpl$starttask.run(servicecontrollerimpl.java:1904) [jboss-msc-1.2.2.final.jar:1.2.2.final]     @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1145) [rt.jar:1.7.0_67]     @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:615) [rt.jar:1.7.0_67]     @ java.lang.thread.run(thread.java:745) [rt.jar:1.7.0_67] caused by: org.jboss.weld.exceptions.deploymentexception: weld-001408: unsatisfied dependencies type testbean qualifiers @default   @ injection point [backedannotatedfield] @inject com.fantasy.web.producer.bean   @ com.fantasy.web.producer.bean(producer.java:0)      @ org.jboss.weld.bootstrap.validator.validateinjectionpointfordeploymentproblems(validator.java:372)     @ org.jboss.weld.bootstrap.validator.validateinjectionpoint(validator.java:293)     @ org.jboss.weld.bootstrap.validator.validategeneralbean(validator.java:134)     @ org.jboss.weld.bootstrap.validator.validateribean(validator.java:167)     @ org.jboss.weld.bootstrap.validator.validatebean(validator.java:531)     @ org.jboss.weld.bootstrap.concurrentvalidator$1.dowork(concurrentvalidator.java:68)     @ org.jboss.weld.bootstrap.concurrentvalidator$1.dowork(concurrentvalidator.java:66)     @ org.jboss.weld.executor.iterativeworkertaskfactory$1.call(iterativeworkertaskfactory.java:60)     @ org.jboss.weld.executor.iterativeworkertaskfactory$1.call(iterativeworkertaskfactory.java:53)     @ java.util.concurrent.futuretask.run(futuretask.java:262) [rt.jar:1.7.0_67]     ... 3 more  01:14:03,183 error [org.jboss.as.controller.management-operation] (controller boot thread) jbas014613: operation ("deploy") failed - address: ([("depl oyment" => "fantasy.ear")]) - failure description: {"jbas014671: failed services" => {"jboss.deployment.unit.\"fantasy.ear\".weldstartservice" => "org .jboss.msc.service.startexception in service jboss.deployment.unit.\"fantasy.ear\".weldstartservice: failed start service     caused by: org.jboss.weld.exceptions.deploymentexception: weld-001408: unsatisfied dependencies type testbean qualifiers @default   @ injection point [backedannotatedfield] @inject com.fantasy.web.producer.bean   @ com.fantasy.web.producer.bean(producer.java:0) "}} 01:14:03,253 info  [org.jboss.as.server] (serverservice thread pool -- 28) jbas018559: deployed "fantasy.ear" (runtime-name : "fantasy.ear") 01:14:03,257 info  [org.jboss.as.controller] (controller boot thread) jbas014774: service status report jbas014777:   services failed start:      service jboss.deployment.unit."fantasy.ear".weldstartservice: org.jboss.msc.service.startexception  in service jboss.deployment.unit."fantasy.ear".weldstartservice: failed start service  01:14:03,355 info  [org.jboss.as] (controller boot thread) jbas015961: http management interface listening on http://127.0.0.1:9990/management 01:14:03,356 info  [org.jboss.as] (controller boot thread) jbas015951: admin console listening on http://127.0.0.1:9990 01:14:03,356 error [org.jboss.as] (controller boot thread) jbas015875: wildfly 8.2.0.final "tweek" started (with errors) in 7986ms - started 385 of 47 3 services (22 services failed or missing dependencies, 108 services lazy, passive or on-demand) 01:14:03,500 info  [org.jboss.as.jpa] (serverservice thread pool -- 51) jbas011410: stopping persistence unit (phase 2 of 2) service 'fantasy.ear#jpad b' 01:14:03,501 info  [org.hibernate.tool.hbm2ddl.schemaexport] (serverservice thread pool -- 51) hhh000227: running hbm2ddl schema export 01:14:03,544 info  [org.hibernate.tool.hbm2ddl.schemaexport] (serverservice thread pool -- 51) hhh000230: schema export complete 01:14:03,546 info  [org.jboss.weld.deployer] (msc service thread 1-7) jbas016009: stopping weld service deployment fantasy.ear 01:14:03,580 info  [org.jboss.as.jpa] (serverservice thread pool -- 51) jbas011410: stopping persistence unit (phase 1 of 2) service 'fantasy.ear#jpad b' 01:14:03,587 info  [org.jboss.as.server.deployment] (msc service thread 1-3) jbas015974: stopped subdeployment (runtime-name: fantasyejb.jar) in 99ms 01:14:03,587 info  [org.jboss.as.server.deployment] (msc service thread 1-4) jbas015974: stopped subdeployment (runtime-name: fantasyweb.war) in 99ms 01:14:03,589 info  [org.jboss.as.server.deployment] (msc service thread 1-3) jbas015877: stopped deployment fantasy.ear (runtime-name: fantasy.ear) in  101ms 01:14:03,699 info  [org.jboss.as.server] (deploymentscanner-threads - 2) jbas018558: undeployed "fantasy.ear" (runtime-name: "fantasy.ear") 01:14:03,704 info  [org.jboss.as.controller] (deploymentscanner-threads - 2) jbas014774: service status report jbas014775:    new missing/unsatisfied dependencies:       service jboss.deployment.subunit."fantasy.ear"."fantasyejb.jar".deploymentcompleteservice (missing) dependents: [service jboss.deployment.unit." fantasy.ear".deploymentcompleteservice]        service jboss.deployment.subunit."fantasy.ear"."fantasyweb.war".component."com.sun.faces.config.configurelistener".create (missing) dependents:  [service jboss.deployment.subunit."fantasy.ear"."fantasyweb.war".component."com.sun.faces.config.configurelistener".start]        service jboss.deployment.subunit."fantasy.ear"."fantasyweb.war".component."com.sun.faces.config.configurelistener".start (missing) dependents: [ service jboss.undertow.deployment.default-server.default-host./fantasyweb.undertowdeploymentinfoservice, service jboss.undertow.deployment.default-ser ver.default-host./fantasyweb, service jboss.deployment.subunit."fantasy.ear"."fantasyweb.war".deploymentcompleteservice]        service jboss.deployment.subunit."fantasy.ear"."fantasyweb.war".component."com.sun.faces.config.configurelistener".weldinstantiator (missing) de pendents: [service jboss.deployment.subunit."fantasy.ear"."fantasyweb.war".component."com.sun.faces.config.configurelistener".start]        service jboss.deployment.subunit."fantasy.ear"."fantasyweb.war".component."javax.faces.webapp.facesservlet".create (missing) dependents: [servic e jboss.deployment.subunit."fantasy.ear"."fantasyweb.war".component."javax.faces.webapp.facesservlet".start]        service jboss.deployment.subunit."fantasy.ear"."fantasyweb.war".component."javax.faces.webapp.facesservlet".start (missing) dependents: [service  jboss.undertow.deployment.default-server.default-host./fantasyweb.undertowdeploymentinfoservice, service jboss.undertow.deployment.default-server.def ault-host./fantasyweb, service jboss.deployment.subunit."fantasy.ear"."fantasyweb.war".deploymentcompleteservice]        service jboss.deployment.subunit."fantasy.ear"."fantasyweb.war".component."javax.faces.webapp.facesservlet".weldinstantiator (missing) dependent s: [service jboss.deployment.subunit."fantasy.ear"."fantasyweb.war".component."javax.faces.webapp.facesservlet".start]        service jboss.deployment.subunit."fantasy.ear"."fantasyweb.war".component."javax.faces.webapp.facettag".create (missing) dependents: [service jb oss.deployment.subunit."fantasy.ear"."fantasyweb.war".component."javax.faces.webapp.facettag".start]        service jboss.deployment.subunit."fantasy.ear"."fantasyweb.war".component."javax.faces.webapp.facettag".start (missing) dependents: [service jbo ss.undertow.deployment.default-server.default-host./fantasyweb.undertowdeploymentinfoservice, service jboss.undertow.deployment.default-server.default -host./fantasyweb, service jboss.deployment.subunit."fantasy.ear"."fantasyweb.war".deploymentcompleteservice]        service jboss.deployment.subunit."fantasy.ear"."fantasyweb.war".component."javax.faces.webapp.facettag".weldinstantiator (missing) dependents: [ service jboss.deployment.subunit."fantasy.ear"."fantasyweb.war".component."javax.faces.webapp.facettag".start]        service jboss.deployment.subunit."fantasy.ear"."fantasyweb.war".component."javax.servlet.jsp.jstl.tlv.permittedtaglibstlv".create (missing) depe ndents: [service jboss.deployment.subunit."fantasy.ear"."fantasyweb.war".component."javax.servlet.jsp.jstl.tlv.permittedtaglibstlv".start]        service jboss.deployment.subunit."fantasy.ear"."fantasyweb.war".component."javax.servlet.jsp.jstl.tlv.permittedtaglibstlv".start (missing) depen dents: [service jboss.undertow.deployment.default-server.default-host./fantasyweb.undertowdeploymentinfoservice, service jboss.undertow.deployment.def ault-server.default-host./fantasyweb, service jboss.deployment.subunit."fantasy.ear"."fantasyweb.war".deploymentcompleteservice]        service jboss.deployment.subunit."fantasy.ear"."fantasyweb.war".component."javax.servlet.jsp.jstl.tlv.permittedtaglibstlv".weldinstantiator (mis sing) dependents: [service jboss.deployment.subunit."fantasy.ear"."fantasyweb.war".component."javax.servlet.jsp.jstl.tlv.permittedtaglibstlv".start]        service jboss.deployment.subunit."fantasy.ear"."fantasyweb.war".component."javax.servlet.jsp.jstl.tlv.scriptfreetlv".create (missing) dependents : [service jboss.deployment.subunit."fantasy.ear"."fantasyweb.war".component."javax.servlet.jsp.jstl.tlv.scriptfreetlv".start]        service jboss.deployment.subunit."fantasy.ear"."fantasyweb.war".component."javax.servlet.jsp.jstl.tlv.scriptfreetlv".start (missing) dependents:  [service jboss.undertow.deployment.default-server.default-host./fantasyweb.undertowdeploymentinfoservice, service jboss.undertow.deployment.default-s erver.default-host./fantasyweb, service jboss.deployment.subunit."fantasy.ear"."fantasyweb.war".deploymentcompleteservice]        service jboss.deployment.subunit."fantasy.ear"."fantasyweb.war".component."javax.servlet.jsp.jstl.tlv.scriptfreetlv".weldinstantiator (missing)  dependents: [service jboss.deployment.subunit."fantasy.ear"."fantasyweb.war".component."javax.servlet.jsp.jstl.tlv.scriptfreetlv".start]        service jboss.deployment.subunit."fantasy.ear"."fantasyweb.war".component."org.jboss.weld.servlet.weldinitiallistener".create (missing) dependen ts: [service jboss.deployment.subunit."fantasy.ear"."fantasyweb.war".component."org.jboss.weld.servlet.weldinitiallistener".start]        service jboss.deployment.subunit."fantasy.ear"."fantasyweb.war".component."org.jboss.weld.servlet.weldinitiallistener".start (missing) dependent s: [service jboss.undertow.deployment.default-server.default-host./fantasyweb.undertowdeploymentinfoservice, service jboss.undertow.deployment.default -server.default-host./fantasyweb, service jboss.deployment.subunit."fantasy.ear"."fantasyweb.war".deploymentcompleteservice]        service jboss.deployment.subunit."fantasy.ear"."fantasyweb.war".component."org.jboss.weld.servlet.weldinitiallistener".weldinstantiator (missing ) dependents: [service jboss.deployment.subunit."fantasy.ear"."fantasyweb.war".component."org.jboss.weld.servlet.weldinitiallistener".start]        service jboss.deployment.subunit."fantasy.ear"."fantasyweb.war".component."org.jboss.weld.servlet.weldterminallistener".create (missing) depende nts: [service jboss.deployment.subunit."fantasy.ear"."fantasyweb.war".component."org.jboss.weld.servlet.weldterminallistener".start]        service jboss.deployment.subunit."fantasy.ear"."fantasyweb.war".component."org.jboss.weld.servlet.weldterminallistener".start (missing) dependen ts: [service jboss.undertow.deployment.default-server.default-host./fantasyweb.undertowdeploymentinfoservice, service jboss.undertow.deployment.defaul t-server.default-host./fantasyweb, service jboss.deployment.subunit."fantasy.ear"."fantasyweb.war".deploymentcompleteservice]        service jboss.deployment.subunit."fantasy.ear"."fantasyweb.war".component."org.jboss.weld.servlet.weldterminallistener".weldinstantiator (missin g) dependents: [service jboss.deployment.subunit."fantasy.ear"."fantasyweb.war".component."org.jboss.weld.servlet.weldterminallistener".start]        service jboss.deployment.subunit."fantasy.ear"."fantasyweb.war".deploymentcompleteservice (missing) dependents: [service jboss.deployment.unit." fantasy.ear".deploymentcompleteservice]        service jboss.deployment.subunit."fantasy.ear"."fantasyweb.war".ee.componentregistry (missing) dependents: [service jboss.undertow.deployment.de fault-server.default-host./fantasyweb.undertowdeploymentinfoservice]        service jboss.deployment.subunit."fantasy.ear"."fantasyweb.war".jndidependencyservice (missing) dependents: [service jboss.deployment.subunit."f antasy.ear"."fantasyweb.war".component."javax.faces.webapp.facesservlet".start, service jboss.deployment.subunit."fantasy.ear"."fantasyweb.war".compon ent."javax.servlet.jsp.jstl.tlv.permittedtaglibstlv".start, service jboss.deployment.subunit."fantasy.ear"."fantasyweb.war".component."org.jboss.weld. servlet.weldinitiallistener".start, service jboss.deployment.subunit."fantasy.ear"."fantasyweb.war".component."org.jboss.weld.servlet.weldterminallist ener".start, jbas014799: ... , 4 more ]        service jboss.deployment.unit."fantasy.ear".weldbootstrapservice (missing) dependents: [service jboss.deployment.unit."fantasy.ear".cdivalidator factoryservice]        service jboss.deployment.unit."fantasy.ear".weldstartservice (missing) dependents: [service jboss.deployment.unit."fantasy.ear".cdivalidatorfact oryservice]        service jboss.persistenceunit."fantasy.ear#jpadb" (missing) dependents: [service jboss.deployment.unit."fantasy.ear".deploymentcompleteservice]        service jboss.undertow.deployment.default-server.default-host./fantasyweb (missing) dependents: [service jboss.deployment.subunit."fantasy.ear". "fantasyweb.war".deploymentcompleteservice]        service jboss.undertow.deployment.default-server.default-host./fantasyweb.undertowdeploymentinfoservice (missing) dependents: [service jboss.und ertow.deployment.default-server.default-host./fantasyweb]  jbas014777:   services failed start:      service jboss.deployment.unit."fantasy.ear".weldstartservice  01:14:08,291 info  [org.jboss.as.server.deployment.scanner] (deploymentscanner-threads - 2) jbas015003: found fantasy.ear in deployment directory.  trigger deployment create file called fantasy.ear.dodeploy 

in java ee 6 (on jboss 7.2), worked around problem creating producers ejbs in resources class follows:

public class resources {         @produces         @ejb         private testbean testbean; } 

this allow @inject them further down line. there might more elegant solutions available in java ee 7, however.


Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -