title: Sending message to Weblogic JMS Queue from a Camel Route
body: <p>I am trying to put a message on a Queue in Weblogic JMS, via a Camel Route. </p>
  
  <p>My aim is to eventually configure a Route to consume the messages from the jms queue to which I publish the data from the earlier Route.</p>
  
  <p>Here is my config:</p>
  
  <pre><code>&lt;bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate"&gt;
      &lt;property name="environment"&gt;
          &lt;props&gt;
              &lt;prop key="java.naming.factory.initial"&gt;weblogic.jndi.WLInitialContextFactory&lt;/prop&gt;
              &lt;prop key="java.naming.provider.url"&gt;t3://localhost:7001&lt;/prop&gt;
              &lt;!-- opional ... --&gt;
              &lt;prop key="java.naming.security.principal"&gt;weblogic&lt;/prop&gt;
              &lt;prop key="java.naming.security.credentials"&gt;weblogic&lt;/prop&gt;
          &lt;/props&gt;
      &lt;/property&gt;
  &lt;/bean&gt;
  
  &lt;!-- Gets a Weblogic JMS Connection factory object from JDNI Server by jndiName--&gt; 
  &lt;bean id="webLogicJmsConnectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean"&gt;
      &lt;property name="jndiTemplate" ref="jndiTemplate" /&gt;
      &lt;property name="jndiName" value="jms/TestConnectionFactory" /&gt;  &lt;!-- the connection factory object is store under this name --&gt;
  &lt;/bean&gt;
  
  &lt;!-- Create a new WebLogic Jms Camel Component --&gt;
  &lt;bean id="wmq" class="org.apache.camel.component.jms.JmsComponent"&gt;
     &lt;property name="connectionFactory" ref="webLogicJmsConnectionFactory"/&gt;
  &lt;/bean&gt;
  </code></pre>
  
  <p>My Route looks like this:</p>
  
  <pre><code>from("cxfrs:bean:rsServer")
       .setBody().body(TestRequest.class)
       .process(new Processor(){
          @Override
          public void process(Exchange exchange) throws Exception {
              TestRequest request = exchange.getIn().getBody(TestRequest.class);
              TestResponse response = new TestResponse();
              response.setAddress(request.getAddress());
              response.setName(request.getName());
          }
  
       }).to("wmq:queue:TestJMSQueue");
  </code></pre>
  
  <p>I am getting this exception when I try to execute this Route:</p>
  
  <pre><code>May 27, 2013 6:37:47 PM org.apache.cxf.jaxrs.impl.WebApplicationExceptionMapper toResponse
  WARNING: javax.ws.rs.WebApplicationException: org.springframework.jms.UncategorizedJmsException: Uncategorized exception occured during JMS processing; nested exception is weblogic.jms.common.JMSException: [JMSExceptions:045101]The destination name passed to createTopic or createQueue "TestJMSModule!TestJMSQueue" is invalid. If the destination name does not contain a "/" character then it must be the name of a distributed destination that is available in the cluster to which the client is attached. If it does contain a "/" character then the string before the "/" must be the name of a JMSServer or a ".". The string after the "/" is the name of a the desired destination. If the "./" version of the string is used then any destination with the given name on the local WLS server will be returned.
  at org.apache.camel.component.cxf.jaxrs.CxfRsInvoker.returnResponse(CxfRsInvoker.java:149)
  at org.apache.camel.component.cxf.jaxrs.CxfRsInvoker.asyncInvoke(CxfRsInvoker.java:104)
  at org.apache.camel.component.cxf.jaxrs.CxfRsInvoker.performInvocation(CxfRsInvoker.java:57)
  at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96)
  at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:167)
  at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:94)
  at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58)
  at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor
  ...
  Caused by: weblogic.jms.common.JMSException: [JMSExceptions:045101]The destination name passed to createTopic or createQueue "TestJMSModule!TestJMSQueue" is invalid. If the destination name does not contain a "/" character then it must be the name of a distributed destination that is available in the cluster to which the client is attached. If it does contain a "/" character then the string before the "/" must be the name of a JMSServer or a ".". The string after the "/" is the name of a the desired destination. If the "./" version of the string is used then any destination with the given name on the local WLS server will be returned.
  at weblogic.jms.frontend.FEManager.destinationCreate(FEManager.java:202)
  at weblogic.jms.frontend.FEManager.invoke(FEManager.java:544)
  at weblogic.messaging.dispatcher.Request.wrappedFiniteStateMachine(Request.java:961)
  at weblogic.messaging.dispatcher.DispatcherImpl.syncRequest(DispatcherImpl.java:184)
  at weblogic.messaging.dispatcher.DispatcherImpl.dispatchSyncNoTran(DispatcherImpl.java:287)
  at weblogic.jms.dispatcher.DispatcherAdapter.dispatchSyncNoTran(DispatcherAdapter.java:59)
  at weblogic.jms.client.JMSSession.createDestination(JMSSession.java:3118)
  at weblogic.jms.client.JMSSession.createQueue(JMSSession.java:2514)
  </code></pre>
  
  <p>I followed the procedure to create a Queue mentioned here: <a href="https://blogs.oracle.com/soaproactive/entry/how_to_create_a_simple" rel="nofollow">https://blogs.oracle.com/soaproactive/entry/how_to_create_a_simple</a></p>
  
  <p>I am creating a JMS Module(TestJMSModule) and in that I am creating a Queue(TestJMSQueue) and a connection factory inside it. </p>
  
  <p>I am new to JMS and I know I am doing something wrong with the configurations either on the Camel side or the Weblogic side, but not able to figure out what. Any help would be greatly appreciated.</p>
  
  <p>Thanks in advance.</p>