start jbpm process using JMS/Tomcat7/Spring
pandyajayn Oct 3, 2016 7:01 PMHi,
I am configuring Tomcat7 with ActiveMQ/Spring setup to start JBPM 6.3 process using JMS apart from REST API.
my applicationContext xml file entry is as per below where i am trying to create a bean for RequestMessageBean class which is a listener for KIE.SESSION.ALL queue where i will send message to start the process.
<jee:jndi-lookup id="notificationJmsConnectionFactory" jndi-name="java:/JmsXA"> </jee:jndi-lookup> <bean id="executorServiceListner" class="org.jbpm.executor.impl.jms.JmsAvailableJobsExecutor" /> <bean id="retryTrackerSingleton" class="org.kie.remote.services.jms.RetryTrackerSingleton" /> <bean id="deploymentInfo" class="org.kie.remote.services.cdi.DeploymentInfoBean" /> <bean id="backupIdentityProviderProducerBean" class="org.kie.remote.services.jms.request.BackupIdentityProviderProducer"/> <bean id="dynamicJaxbContextBean" class="org.kie.remote.services.rest.jaxb.DynamicJaxbContext" /> <bean id="kieSessionListner" class="org.kie.remote.services.jms.RequestMessageBean" > <property name="factory" ref="notificationJmsConnectionFactory" /> <property name="retryTracker" ref="retryTrackerSingleton" /> <property name="runtimeMgrMgr" ref="deploymentInfo" /> <property name="backupIdentityProviderProducer" ref="backupIdentityProviderProducerBean"/> <property name="dynamicJaxbContext" ref="dynamicJaxbContextBean"/> </bean> <bean id="kieSessionQcontainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer"> <property name="connectionFactory" ref="cachingConnectionFactory"/> <property name="messageListener" ref="kieSessionListner"/> <property name="destinationName" value="jms/queue/KIE.SESSION.ALL" /> </bean> <bean id="jmsTemplateForSession" class="org.springframework.jms.core.JmsTemplate"> <property name="connectionFactory" ref="cachingConnectionFactory" /> <property name="receiveTimeout" value="10000" /> <property name="defaultDestination" ref="kieSessionDestination" /> <property name="sessionTransacted" value="false" /> <property name="sessionAcknowledgeMode" value="#{T(javax.jms.Session).AUTO_ACKNOWLEDGE}" /> <property name="pubSubDomain" value="false" /> <property name="messageConverter" ref="auditMessageConverter" /> </bean> <bean id="kieSessionDestination" class="org.apache.activemq.command.ActiveMQQueue"> <constructor-arg value="jms/queue/KIE.SESSION.ALL" /> </bean>
Also i have defined JmsXA as a resource in Tomcat7/conf/context.xml as per below
<Resource name="java:/JmsXA" auth="Container" type="org.apache.activemq.ActiveMQConnectionFactory" description="JMSConnectionFactory" factory="org.apache.activemq.jndi.JNDIReferenceFactory" brokerURL="vm://127.0.0.1?brokerConfig=xbean:activemq.xml" brokerName="bpmsAuditJms" useEmbeddedBroker="true"></Resource>
But when i am starting Tomcat7 instance, i am getting following exception trace
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'notificationJmsConnectionFactory': Invocation of init method failed; nested exception is javax.naming.NameNotFoundException: Name [JmsXA] is not bound in this Context. Unable to find [JmsXA]. at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1578) ~[?:?] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545) ~[?:?] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) ~[?:?] at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) ~[?:?] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[?:?] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) ~[?:?] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) ~[?:?] at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:757) ~[?:?] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:861) ~[?:?] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:541) ~[?:?] at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:444) ~[?:?] at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:326) ~[?:?] at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107) ~[?:?] at org.apache.catalina.core.StandardContext.listenerStart(Unknown Source) ~[catalina.jar:7.0.59] at org.apache.catalina.core.StandardContext.startInternal(Unknown Source) ~[catalina.jar:7.0.59] at org.apache.catalina.util.LifecycleBase.start(Unknown Source) ~[catalina.jar:7.0.59] at org.apache.catalina.core.ContainerBase.addChildInternal(Unknown Source) ~[catalina.jar:7.0.59] at org.apache.catalina.core.ContainerBase.addChild(Unknown Source) ~[catalina.jar:7.0.59] at org.apache.catalina.core.StandardHost.addChild(Unknown Source) ~[catalina.jar:7.0.59] at org.apache.catalina.startup.HostConfig.deployDirectory(Unknown Source) ~[catalina.jar:7.0.59] at org.apache.catalina.startup.HostConfig$DeployDirectory.run(Unknown Source) ~[catalina.jar:7.0.59] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[?:1.8.0_92] at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_92] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_92] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_92] at java.lang.Thread.run(Thread.java:745) [?:1.8.0_92] Caused by: javax.naming.NameNotFoundException: Name [JmsXA] is not bound in this Context. Unable to find [JmsXA]. at org.apache.naming.NamingContext.lookup(Unknown Source) ~[catalina.jar:7.0.59] at org.apache.naming.NamingContext.lookup(Unknown Source) ~[catalina.jar:7.0.59] at org.apache.naming.SelectorContext.lookup(Unknown Source) ~[catalina.jar:7.0.59] at javax.naming.InitialContext.lookup(InitialContext.java:417) ~[?:1.8.0_92] at org.springframework.jndi.JndiTemplate$1.doInContext(JndiTemplate.java:155) ~[?:?] at org.springframework.jndi.JndiTemplate.execute(JndiTemplate.java:87) ~[?:?] at org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:152) ~[?:?] at org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:179) ~[?:?] at org.springframework.jndi.JndiLocatorSupport.lookup(JndiLocatorSupport.java:95) ~[?:?] at org.springframework.jndi.JndiObjectLocator.lookup(JndiObjectLocator.java:106) ~[?:?] at org.springframework.jndi.JndiObjectFactoryBean.lookupWithFallback(JndiObjectFactoryBean.java:231) ~[?:?] at org.springframework.jndi.JndiObjectFactoryBean.afterPropertiesSet(JndiObjectFactoryBean.java:217) ~[?:?] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637) ~[?:?] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574) ~[?:?]
Any help is appreciable