Ajay,

I suspect you don't actually get a JMS ConnectionFactory with the JNDI configuration you have there. Could you check the JNDI configuration and especially the name for the your ConnectionFactory? Also, could you try using the new <jms:provider/> endpoint to see what exception that gives you?

Regards,

Gert

Ajaykumar wrote:
hi,

Iam having the same problem again and again. I really dont know how I can
get rid of this problem when I use JNDI template. Iam using camel basic
example.

JMS SU xbean.xml

<beans xmlns:jms="http://servicemix.apache.org/jms/1.0";
        xmlns:tut="http://intra.agfanet";
xmlns:tutorial="urn:org:apache:servicemix:tutorial:camel"
        xmlns:amq="http://activemq.org/config/1.0";
xmlns="http://www.springframework.org/schema/beans";
        xmlns:xsi="http://http://www.w3.org/2001/XMLSchema-instance";
        xsi:schemaLocation="http://servicemix.apache.org/jms/1.0
http://servicemix.apache.org/schema/servicemix-jms-3.2.2.xsd
       http://activemq.org/config/1.0
http://activemq.apache.org/schema/core/activemq-core-4.1.1.xsd
       http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd";>

        <!-- START SNIPPET: provider -->
        
        <jms:endpoint service="tut:jms" endpoint="myProvider1"
                role="provider" destinationStyle="queue"
jmsProviderDestinationName="queue/testQueue"
connectionFactory="#connectionFactory" defaultMep="http://www.w3.org/2004/08/wsdl/in-only"; />
<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>java:QueueConnectionFactory</value>
                </property>
                <property name="resourceRef" value="true"/>
                
        </bean>
</beans>

Camel MyRouteBuilder.java

public class MyRouteBuilder extends RouteBuilder {

    public void configure() {
//send a message to a JBI endpoint... from("timer://tutorial?fixedRate=true&delay=3000&period=30000") // 1 .setBody(constant("<message>Hello world</message>")) // 2 .to("jbi:endpoint:http://intra.agfanet/jms/myProvider1";);
}
}

My intension is to write on a queue name queue/testQueue. So that the
messageDrivenBean deployed on Jboss gets this message. But, Iam having the
following errors and exceptions.

INFO  - AutoDeploymentService          - Directory: hotdeploy: Finished
installation of archive:  tutorial-camel-sa-1.0-SNAPSHOT.jar
ERROR - JmsComponent                   - Error processing exchange InOnly[
  id: ID:172.25.35.156-11ea5d4672a-3:0
  status: Active
  role: provider
  endpoint: myProvider1
  in: <?xml version="1.0" encoding="UTF-8"?><message>Hello world</message>
]
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)
ERROR - DeadLetterChannel              - Failed delivery for exchangeId:
ID-trrw0104/1111-1231150374250/0-0. On delivery attempt: 0 caught:
java.lang.NullPointerException
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)

Please give some hints, how I can get rid of this exceptions.
Thanking you very much.

Best Regards,
Ajay

Reply via email to