Hi Ajay,
Now I suspect this might be something related to the way the JMS xbean
fragment has been defined. You are using jms:endpoint in which case you need
to specify the defaultMEP which I suspect defaults to
"http://www.w3.org/2004/08/wsdl/in-out". Can you add a defaultMEP property
and set it to "http://www.w3.org/2004/08/wsdl/in-only".
I do not see anything wrong with the payload or ConnectionFactory
configuration at this point.
Cheers,
Ashwin...
Ajaykumar wrote:
>
> Hello Ashwin,
>
> Thank you very much for your reply. I tried to use
> java:QueueConnectionFactory and it works fine.So, now I dont have any
> problem to create SA. But this lead again to the very first Exceptions.
> When I deploy this SA on ServiceMix(Jetty). Iam getting the same Exception
> as before.
>
> Trace:
> INFO - AutoDeploymentService - Directory: hotdeploy: Finished
> installation of archive: tutorial-sa-1.0-SNAPSHOT.jar
> ERROR - JmsComponent - Error processing exchange InOnly[
> id: ID:172.25.35.156-11e8ce90b50-7:18
> status: Active
> role: provider
> service: {http://intra.agfanet}jms
> endpoint: myQueue
> in: <?xml version="1.0" encoding="UTF-8"?><note>
> <to>Tove</to>
> <from>Jani</from>
> <heading>Reminder</heading>
> <body>Don't forget me this weekend!</body>
> </note>
> ]
> java.lang.NullPointerException
> at
> org.apache.servicemix.jms.DefaultJmsMarshaler.toJMS(DefaultJmsMarshaler.java:83)
> at
> org.apache.servicemix.jms.DefaultJmsMarshaler.toJMS(DefaultJmsMarshaler.java:107)
> at
> org.apache.servicemix.jms.AbstractJmsProcessor.fromNMS(AbstractJmsProcessor.java:216)
> at
> org.apache.servicemix.jms.AbstractJmsProcessor.createMessageFromExchange(AbstractJmsProcessor.java:263)
> at
> org.apache.servicemix.jms.multiplexing.MultiplexingProviderProcessor.process(MultiplexingProviderProcessor.java:110)
> at
> org.apache.servicemix.soap.SoapEndpoint.process(SoapEndpoint.java:367)
> at
> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:600)
> at
> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:554)
> at
> org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:510)
> at
> org.apache.servicemix.common.SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60)
> at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:620)
> at
> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
> at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)
> at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
> at java.lang.Thread.run(Thread.java:619)
> WARN - FileComponent - Message in file
> C:\BPEFileReader\sample.xml could not be handled successfully: null
> java.lang.NullPointerException
> at
> org.apache.servicemix.jms.DefaultJmsMarshaler.toJMS(DefaultJmsMarshaler.java:83)
> at
> org.apache.servicemix.jms.DefaultJmsMarshaler.toJMS(DefaultJmsMarshaler.java:107)
> at
> org.apache.servicemix.jms.AbstractJmsProcessor.fromNMS(AbstractJmsProcessor.java:216)
> at
> org.apache.servicemix.jms.AbstractJmsProcessor.createMessageFromExchange(AbstractJmsProcessor.java:263)
> at
> org.apache.servicemix.jms.multiplexing.MultiplexingProviderProcessor.process(MultiplexingProviderProcessor.java:110)
> at
> org.apache.servicemix.soap.SoapEndpoint.process(SoapEndpoint.java:367)
> at
> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:600)
> at
> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:554)
> at
> org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:510)
> at
> org.apache.servicemix.common.SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60)
> at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:620)
> at
> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
> at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)
> at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
> at java.lang.Thread.run(Thread.java:619)
>
> In between, I wrote a small client as you suggested.
>
> QueueConnection cnn = null;
> QueueSender sender = null;
> QueueSession session = null;
> try {
> Properties props = new Properties();
> props.setProperty(Context.INITIAL_CONTEXT_FACTORY,
> "org.jnp.interfaces.NamingContextFactory");
> props.setProperty(Context.URL_PKG_PREFIXES,
> "org.jboss.naming.client");
> props.setProperty(Context.PROVIDER_URL,
> "jnp://localhost:1099");
> props.setProperty("j2ee.clientName", "MDBClient");
> InitialContext ctx = new InitialContext(props);
> Queue queue = (Queue) ctx.lookup("queue/myQueue");
> QueueConnectionFactory factory = (QueueConnectionFactory)
> ctx.lookup("QueueConnectionFactory");
> cnn = factory.createQueueConnection();
> session = cnn.createQueueSession(false,
> QueueSession.AUTO_ACKNOWLEDGE);
> System.out.println("Enter the message to send to queue.");
> InputStreamReader isr = new InputStreamReader(System.in);
> BufferedReader br = new BufferedReader(isr);
> String str = br.readLine();
> TextMessage msg = session.createTextMessage(str);
> sender = session.createSender(queue);
> sender.send(msg);
> System.out.println(msg + "Message sent successfully to remote
> queue.");
> } catch (NamingException nme) {
> System.out.println(nme);
> }
>
> I could successfully send the messages to my MDB listener deployed on
> JBoss. But the problem to use (ServiceMix)EIP on Jboss JMS queue did not
> solve. Please give me some more hints.
>
> Thanking you.
>
> Best Regards,
> Ajay
>
>
>
>
>
>
>
> Ashwin Karpe wrote:
>>
>> Hi Ajay,
>>
>> Ok, looks like QueueConnectionFactory is set up in JNDI directly under
>> root (i.e. not under java:comp/env). Have you tried
>> java:QueueConnectionFactory as value of property JNDIName.
>>
>> In any case if that does not work either, I would think that there is
>> some problem with the QueueConnectionFactory and its ability to create
>> connection objects with links to queue/MyQueue.
>>
>> Can you please verify whether the QueueConnectionFactory does return
>> valid connection handles that can write to the JBoss Queue using a simple
>> JAVA mainline class.
>>
>> Cheers,
>>
>> Ashwin...
>>
>>
>> Ajaykumar wrote:
>>>
>>> Hi Ashwin,
>>>
>>> Thank you for your reply. I did the following as per your
>>> recommendations.
>>>
>>> Jms SU xbean.xml
>>>
>>> <beans xmlns:jms="http://servicemix.apache.org/jms/1.0"
>>> xmlns:tut="http://intra.agfanet"
>>> xmlns:amq="http://activemq.org/config/1.0">
>>> <jms:endpoint service="tut:jms"
>>> endpoint="myQueue"
>>> role="provider"
>>> destinationStyle="queue"
>>> jmsProviderDestinationName="queue/myQueue"
>>> connectionFactory="#connectionFactory"/>
>>>
>>> <bean id="jbossJndiTemplate"
>>> class="org.springframework.jndi.JndiTemplate">
>>> <property name="environment">
>>> <props>
>>> <prop key="java.naming.factory.initial">
>>> org.jnp.interfaces.NamingContextFactory
>>> </prop>
>>> <prop key="java.naming.provider.url">
>>> jnp://localhost:1099
>>> </prop>
>>> <prop key="java.naming.factory.url.pkgs">
>>> org.jboss.naming:org.jnp.interfaces
>>> </prop>
>>> </props>
>>> </property>
>>> </bean>
>>> <bean id="connectionFactory"
>>> class="org.springframework.jndi.JndiObjectFactoryBean">
>>> <property name="jndiTemplate">
>>> <ref bean="jbossJndiTemplate" />
>>> </property>
>>> <property name="jndiName">
>>> <value>QueueConnectionFactory</value>
>>> </property>
>>> <property name="resourceRef" value="true"/>
>>> </bean>
>>> </beans>
>>>
>>> But when I use mvn install for creating SA, Iam getting this exceptions.
>>>
>>> org.springframework.beans.factory.BeanCreationException: Error creating
>>> bean with name 'org.apache.servicemix.jms.JmsEndpoint' defined in URL
>>> [file:/D:/SampleJMSExample1/tutorial-jms-su/src/main/resources/xbean.xml]:
>>> Cannot resolve reference to bean 'connectionFactory' while setting bean
>>> property 'connectionFactory'; nested exception is
>>> org.springframework.beans.factory.BeanCreationException: Error creating
>>> bean with name 'connectionFactory' defined in URL
>>> [file:/D:/SampleJMSExample1/tutorial-jms-su/src/main/resources/xbean.xml]:
>>> Invocation of init method failed;
>>> nested exception is javax.naming.NameNotFoundException: comp not bound
>>>
>>> I checked the jmx-console of jboss. There I could find under jboss.jms,
>>> there is a JNDIName->QueueConnectionFactory.
>>>
>>> I dont know what might be the problem. But when I run the jboss, I have
>>> this information.
>>>
>>> [ConnectionFactoryBindingService] Bound ConnectionManager
>>> 'jboss.jca:service=DataSourceBinding,name=HSQL_DefaultDS' to JNDI name
>>> 'java:HSQL_DefaultDS'
>>> [ConnectionFactoryBindingService] Bound ConnectionManager
>>> 'jboss.jca:service=ConnectionFactoryBinding,name=JmsXA' to JNDI name
>>> 'java:JmsXA'
>>> [ConnectionFactoryBindingService] Bound ConnectionManager
>>> 'jboss.jca:service=DataSourceBinding,name=DefaultDS' to JNDI name
>>> 'java:DefaultDS
>>>
>>> So, I request to give some hints what might be the problem. All I want
>>> is to create a Jboss JMS queue using Spring beans.
>>>
>>> Thanking you.
>>>
>>> Best Regards,
>>> Ajay
>>>
>>>
>>>
>>> Ashwin Karpe wrote:
>>>>
>>>> Hi Ajay,
>>>>
>>>> It seems that the JNDI Name you are using is set to
>>>> QueueConnectionFactory. I wonder whether this has been created in JBOSS
>>>> as java:comp/env/QueueConnectionFactory. Note that the setter will
>>>> automatically append java:comp/env only if resourceRef is set to
>>>> "true".
>>>>
>>>> If so then the lookup will fail...
>>>>
>>>> Can you please verify whether this is the case. Note that the reason
>>>> this may be working in your ActiveMQ connectionfactory is that there is
>>>> no JNDI related activity.
>>>>
>>>> Cheers,
>>>>
>>>> Ashwin...
>>>>
>>>>
>>>> Ajaykumar wrote:
>>>>>
>>>>> Hi,
>>>>>
>>>>> Iam having problem using EIP example. I have the following SU's
>>>>> configuration.
>>>>>
>>>>> File SU xbean.xml
>>>>>
>>>>> <beans xmlns:file="http://servicemix.apache.org/file/1.0"
>>>>> xmlns:tut="http://intra.agfanet">
>>>>> <!-- add the poller endpoint here -->
>>>>> <file:poller service="tut:file" endpoint="poller"
>>>>> file="file:C:/BPEFileReader" targetService="tut:wiretap">
>>>>> <property name="filter">
>>>>> <bean
>>>>> class="org.apache.commons.io.filefilter.WildcardFilter">
>>>>> <constructor-arg value="sample.xml" />
>>>>> </bean>
>>>>> </property>
>>>>> </file:poller>
>>>>> <!-- add the sender endpoint here -->
>>>>> <file:sender service="tut:file" endpoint="sender"
>>>>> directory="file:C:/BPEFileWriter" />
>>>>> </beans>
>>>>>
>>>>> JMS SU xbean.xml
>>>>>
>>>>> <beans xmlns:jms="http://servicemix.apache.org/jms/1.0"
>>>>> xmlns:tut="http://intra.agfanet"
>>>>> xmlns:amq="http://activemq.org/config/1.0">
>>>>> <jms:endpoint service="tut:jms"
>>>>> endpoint="myQueue"
>>>>> role="provider"
>>>>> destinationStyle="queue"
>>>>> jmsProviderDestinationName="queue/myQueue"
>>>>> connectionFactory="#connectionFactory"/>
>>>>> <bean id="jbossJndiTemplate"
>>>>> class="org.springframework.jndi.JndiTemplate">
>>>>> <property name="environment">
>>>>> <props>
>>>>> <prop key="java.naming.factory.initial">
>>>>> org.jnp.interfaces.NamingContextFactory
>>>>> </prop>
>>>>> <prop key="java.naming.provider.url">
>>>>> jnp://localhost:1099
>>>>> </prop>
>>>>> <prop key="java.naming.factory.url.pkgs">
>>>>> org.jboss.naming:org.jnp.interfaces
>>>>> </prop>
>>>>> </props>
>>>>> </property>
>>>>> </bean>
>>>>>
>>>>> <bean id="connectionFactory"
>>>>> class="org.springframework.jndi.JndiObjectFactoryBean">
>>>>> <property name="jndiTemplate">
>>>>> <ref bean="jbossJndiTemplate" />
>>>>> </property>
>>>>> <property name="jndiName">
>>>>> <value>QueueConnectionFactory</value>
>>>>> </property>
>>>>> </bean>
>>>>> </beans>
>>>>>
>>>>> EIP SU xbean.xml
>>>>>
>>>>> <beans xmlns:eip="http://servicemix.apache.org/eip/1.0"
>>>>> xmlns:tut="http://intra.agfanet">
>>>>>
>>>>> <eip:wire-tap service="tut:wiretap" endpoint="endpoint">
>>>>> <eip:target>
>>>>> <eip:exchange-target service="tut:jms" />
>>>>> </eip:target>
>>>>> <eip:inListener>
>>>>> <eip:exchange-target service="tut:file" endpoint="sender" />
>>>>> </eip:inListener>
>>>>> </eip:wire-tap>
>>>>> </beans>
>>>>>
>>>>> When I use mvn install I dont get any problems. But when I deploy the
>>>>> SA on servicemix running on jetty, I have to following exceptions.
>>>>>
>>>>> ERROR - JmsComponent - Error processing exchange
>>>>> InOnly[
>>>>> id: ID:172.25.35.156-11e876aa483-7:100
>>>>> status: Active
>>>>> role: provider
>>>>> service: {http://intra.agfanet}jms
>>>>> endpoint: myQueue
>>>>> java.lang.NullPointerException
>>>>> at
>>>>> org.apache.servicemix.jms.DefaultJmsMarshaler.toJMS(DefaultJmsMarshaler.java:83)
>>>>> at
>>>>> org.apache.servicemix.jms.DefaultJmsMarshaler.toJMS(DefaultJmsMarshaler.java:107)
>>>>> WARN - FileComponent - Message in file
>>>>> C:\BPEFileReader\sample.xml could not be handled successfully: null
>>>>> java.lang.NullPointerException
>>>>>
>>>>> Iam newbie for servicemix. Could some one please help me.
>>>>>
>>>>> Thanking you.
>>>>>
>>>>> Best Regards,
>>>>> Ajay
>>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>
>
-----
---
Ashwin Karpe, Principal Consultant, PS - Opensource Center of Competence
Progress Software Corporation
14 Oak Park Drive
Bedford, MA 01730
---
+1-972-304-9084 (Office)
+1-972-971-1700 (Mobile)
----
Blog: http://opensourceknowledge.blogspot.com/
--
View this message in context:
http://www.nabble.com/Problems-with-EIP-when-using-Jboss-JMS-queue-tp21215924p21232039.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.