WAR in AS 7.1 deployment fails with JBAS014771: Services with missing/unavailable dependencies (persistence unit not found)
tujasiri May 5, 2015 7:26 PMI've seen a few posts with similar subject lines, but none have addressed my issue. I'm attempting to deploy a simple Dynamic Web Project, using Spring, that drives a 2 node JBPM process.
server.log:
14:47:00,426 INFO [org.jboss.as.jpa] (MSC service thread 1-12) JBAS011401: Read persistence.xml for org.persistence.unit 14:47:00,646 INFO [org.jboss.weld.deployer] (MSC service thread 1-7) JBAS016002: Processing weld deployment BriefReqPersistSPRING.war 14:47:00,659 INFO [org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor] (MSC service thread 1-7) JNDI bindings for session bean named AvailableJobsExecutor in deployment unit deployment "BriefReqPersistSPRING.war" are as follows: java:global/BriefReqPersistSPRING/AvailableJobsExecutor!org.jbpm.executor.impl.AvailableJobsExecutor java:app/BriefReqPersistSPRING/AvailableJobsExecutor!org.jbpm.executor.impl.AvailableJobsExecutor java:module/AvailableJobsExecutor!org.jbpm.executor.impl.AvailableJobsExecutor java:global/BriefReqPersistSPRING/AvailableJobsExecutor java:app/BriefReqPersistSPRING/AvailableJobsExecutor java:module/AvailableJobsExecutor 14:47:00,693 INFO [org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor] (MSC service thread 1-7) JNDI bindings for session bean named RetryTrackerSingleton in deployment unit deployment "BriefReqPersistSPRING.war" are as follows: java:global/BriefReqPersistSPRING/RetryTrackerSingleton!org.kie.remote.services.jms.RetryTrackerSingleton java:app/BriefReqPersistSPRING/RetryTrackerSingleton!org.kie.remote.services.jms.RetryTrackerSingleton java:module/RetryTrackerSingleton!org.kie.remote.services.jms.RetryTrackerSingleton java:global/BriefReqPersistSPRING/RetryTrackerSingleton java:app/BriefReqPersistSPRING/RetryTrackerSingleton java:module/RetryTrackerSingleton 14:47:00,748 INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-14) JBAS010403: Deploying JDBC-compliant driver class org.h2.Driver (version 1.3) 14:47:00,762 INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-14) JBAS010404: Deploying non-JDBC-compliant driver class com.mysql.jdbc.Driver (version 5.1) 14:47:00,771 INFO [org.jboss.weld.deployer] (MSC service thread 1-14) JBAS016005: Starting Services for CDI deployment: BriefReqPersistSPRING.war 14:47:00,833 INFO [org.jboss.wsf.stack.cxf.metadata.MetadataBuilder] (MSC service thread 1-14) Add Service id=org.kie.remote.services.ws.command.CommandWebServiceImpl address=http://localhost:8080/BriefReqPersistSPRING/CommandService implementor=org.kie.remote.services.ws.command.CommandWebServiceImpl invoker=org.jboss.wsf.stack.cxf.JBossWSInvoker serviceName={http://services.remote.kie.org/6.1.0.1/command}CommandService portName={http://services.remote.kie.org/6.1.0.1/command}CommandServicePort wsdlLocation=null mtomEnabled=false 14:47:00,877 INFO [org.apache.cxf.service.factory.ReflectionServiceFactoryBean] (MSC service thread 1-14) Creating Service {http://services.remote.kie.org/6.1.0.1/command}CommandService from class org.kie.remote.services.ws.wsdl.generated.CommandWebService 14:47:01,091 INFO [org.apache.cxf.endpoint.ServerImpl] (MSC service thread 1-14) Setting the server's publish address to be http://localhost:8080/BriefReqPersistSPRING/CommandService 14:47:01,135 INFO [org.jboss.wsf.stack.cxf.deployment.WSDLFilePublisher] (MSC service thread 1-14) WSDL published to: file:/Users/tajiriujasiri/test/jbpm-installer/jboss-as-7.1.1.Final/standalone/data/wsdl/BriefReqPersistSPRING.war/CommandService.wsdl 14:47:01,149 INFO [org.jboss.as.webservices] (MSC service thread 1-7) JBAS015539: Starting service jboss.ws.port-component-link 14:47:01,157 INFO [org.jboss.as.webservices] (MSC service thread 1-7) JBAS015539: Starting service jboss.ws.endpoint."BriefReqPersistSPRING.war"."org.kie.remote.services.ws.command.CommandWebServiceImpl" 14:47:01,168 INFO [org.jboss.ws.common.management.DefaultEndpointRegistry] (MSC service thread 1-7) register: jboss.ws:context=BriefReqPersistSPRING,endpoint=org.kie.remote.services.ws.command.CommandWebServiceImpl 14:47:01,381 INFO [org.jboss.as.server] (DeploymentScanner-threads - 1) JBAS015870: Deploy of deployment "BriefReqPersistSPRING.war" was rolled back with failure message {"JBAS014771: Services with missing/unavailable dependencies" => ["jboss.deployment.unit.\"BriefReqPersistSPRING.war\".WeldServicejboss.persistenceunit.\"BriefReqPersistSPRING.war#org.persistence.unit\"Missing[jboss.deployment.unit.\"BriefReqPersistSPRING.war\".WeldServicejboss.persistenceunit.\"BriefReqPersistSPRING.war#org.persistence.unit\"]"]} 14:47:01,387 INFO [org.jboss.as.webservices] (MSC service thread 1-6) JBAS015540: Stopping service jboss.ws.endpoint."BriefReqPersistSPRING.war"."org.kie.remote.services.ws.command.CommandWebServiceImpl" 14:47:01,430 INFO [org.jboss.ws.common.management.DefaultEndpointRegistry] (MSC service thread 1-6) remove: jboss.ws:context=BriefReqPersistSPRING,endpoint=org.kie.remote.services.ws.command.CommandWebServiceImpl 14:47:01,443 INFO [org.jboss.as.webservices] (MSC service thread 1-4) JBAS015540: Stopping service jboss.ws.port-component-link 14:47:01,510 INFO [org.jboss.as.server.deployment] (MSC service thread 1-7) JBAS015877: Stopped deployment BriefReqPersistSPRING.war in 128ms 14:47:01,517 INFO [org.jboss.as.controller] (DeploymentScanner-threads - 1) JBAS014774: Service status report JBAS014776: Newly corrected services: service jboss.persistenceunit."BriefReqPersistSPRING.war#org.persistence.unit" (new available) 14:47:01,530 ERROR [org.jboss.as.server.deployment.scanner] (DeploymentScanner-threads - 2) {"JBAS014653: Composite operation failed and was rolled back. Steps that failed:" => {"Operation step-2" => {"JBAS014771: Services with missing/unavailable dependencies" => ["jboss.deployment.unit.\"BriefReqPersistSPRING.war\".WeldServicejboss.persistenceunit.\"BriefReqPersistSPRING.war#org.persistence.unit\"Missing[jboss.deployment.unit.\"BriefReqPersistSPRING.war\".WeldServicejboss.persistenceunit.\"BriefReqPersistSPRING.war#org.persistence.unit\"]"]}}}
persistence.xml:
<?xml version="1.0" encoding="UTF-8"?> <persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:orm="http://java.sun.com/xml/ns/persistence/orm" 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_2_0.xsd http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_2_0.xsd"> <persistence-unit name="org.persistence.unit" transaction-type="JTA"> <!--persistence-unit name="org.persistence.unit" transaction-type="RESOURCE_LOCAL"--> <provider>org.hibernate.ejb.HibernatePersistence</provider> <jta-data-source>java:jboss/datasources/jbpmDS</jta-data-source> <mapping-file>META-INF/JBPMorm.xml</mapping-file> <mapping-file>META-INF/Taskorm.xml</mapping-file> <mapping-file>META-INF/TaskAuditorm.xml</mapping-file> <class>org.jbpm.persistence.processinstance.ProcessInstanceInfo</class> <class>org.drools.persistence.info.SessionInfo</class> <class>org.drools.persistence.info.WorkItemInfo</class> <class>org.jbpm.process.audit.ProcessInstanceLog</class> <class>org.jbpm.process.audit.NodeInstanceLog</class> <class>org.jbpm.process.audit.VariableInstanceLog</class> <class>org.jbpm.persistence.correlation.CorrelationKeyInfo</class> <class>org.jbpm.persistence.correlation.CorrelationPropertyInfo</class> <class>org.jbpm.services.task.impl.model.AttachmentImpl</class> <class>org.jbpm.services.task.impl.model.ContentImpl</class> <class>org.jbpm.services.task.impl.model.BooleanExpressionImpl</class> <class>org.jbpm.services.task.impl.model.CommentImpl</class> <class>org.jbpm.services.task.impl.model.DeadlineImpl</class> <class>org.jbpm.services.task.impl.model.DelegationImpl</class> <class>org.jbpm.services.task.impl.model.EscalationImpl</class> <class>org.jbpm.services.task.impl.model.GroupImpl</class> <class>org.jbpm.services.task.impl.model.I18NTextImpl</class> <class>org.jbpm.services.task.impl.model.NotificationImpl</class> <class>org.jbpm.services.task.impl.model.EmailNotificationImpl</class> <class>org.jbpm.services.task.impl.model.EmailNotificationHeaderImpl</class> <class>org.jbpm.services.task.impl.model.PeopleAssignmentsImpl</class> <class>org.jbpm.services.task.impl.model.ReassignmentImpl</class> <class>org.jbpm.services.task.impl.model.TaskImpl</class> <class>org.jbpm.services.task.impl.model.TaskDataImpl</class> <class>org.jbpm.services.task.impl.model.UserImpl</class> <!--BAM for task service --> <class>org.jbpm.services.task.audit.impl.model.BAMTaskSummaryImpl</class> <!-- Event Classes --> <class>org.jbpm.services.task.audit.impl.model.TaskEventImpl</class> <!-- Task Audit Classes --> <class>org.jbpm.services.task.audit.impl.model.AuditTaskImpl</class> <properties> <!-- SPRING--> <property name="jboss.as.jpa.providerModule" value="application" /> <property name="jboss.as.jpa.managed" value="false" /> <!-- SPRING--> <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" /> <property name="hibernate.show_sql" value="true" /> <property name="hibernate.hbm2ddl.auto" value="update" /> <property name="hibernate.max_fetch_depth" value="3" /> <!-- BZ 841786: AS7/EAP 6/Hib 4 uses new (sequence) generators which seem to cause problems --> <property name="hibernate.id.new_generator_mappings" value="false" /> <!--property name="hibernate.transaction.jta.platform" value="org.hibernate.service.jta.platform.internal.JBossAppServerJtaPlatform"/--> <property name="hibernate.transaction.jta.platform" value="org.hibernate.service.jta.platform.internal.BitronixJtaPlatform"/> <!--property name="hibernate.transaction.jta.platform" value="org.hibernate.service.jta.platform.internal.BitronixJtaPlatform"/--> <property name="hibernate.transaction.factory_class" value="org.hibernate.transaction.JTATransactionFactory" /> <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.JBossTransactionManagerLookup" /> </properties> </persistence-unit> </persistence>
web.xml:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0" > <display-name>Process Test</display-name> <welcome-file-list> <welcome-file>/index.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>springDispatcher</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/config/applicationContextBPMN.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springDispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
Java:
ApplicationContext context = new ClassPathXmlApplicationContext("file:src/main/resources/WEB-INF/config/applicationContextBPMN.xml"); emf = (EntityManagerFactory)context.getBean("jbpmEMF");
applicationContextBPMN.xml:
<?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:util="http://www.springframework.org/schema/util" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd"> <bean id="jbpmEMF" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> <property name="persistenceUnitName" value="org.persistence.unit.short"/> <property name="persistenceXmlLocation" value="classpath:META-INF/persistence.xml"/> </bean> <bean id="jbpmTxManager" class="org.springframework.orm.jpa.JpaTransactionManager"> <property name="entityManagerFactory" ref="jbpmEMF"/> </bean> <bean id="process" factory-method="newClassPathResource" class="org.kie.internal.io.ResourceFactory"> <constructor-arg> <value>META-INF/briefverify_mod.bpmn2</value> </constructor-arg> </bean> <bean id="runtimeEnvironment" class="org.kie.spring.factorybeans.RuntimeEnvironmentFactoryBean"> <property name="type" value="DEFAULT"/> <!-- <property name="entityManager" ref="sharedEntityManagerBean"/>--> <property name="entityManagerFactory" ref="jbpmEMF"/> <property name="transactionManager" ref="jbpmTxManager"/> <!--property name="pessimisticLocking" value="true"/--> <property name="assets"> <map> <entry key-ref="process"><util:constant static-field="org.kie.api.io.ResourceType.BPMN2"/></entry> </map> </property> </bean> <bean id="runtimeManager" class="org.kie.spring.factorybeans.RuntimeManagerFactoryBean" destroy-method="close"> <property name="type" value="PER_REQUEST" /> <property name="identifier" value="spring-rm"/> <property name="runtimeEnvironment" ref="runtimeEnvironment"/> </bean> <bean id="logService" class="org.jbpm.process.audit.JPAAuditLogService"> <constructor-arg> <ref bean="jbpmEMF"/> </constructor-arg> <constructor-arg> <value>STANDALONE_LOCAL_SPRING_SHARED_EM</value> </constructor-arg> </bean> </beans>