But must I have a full installation of ActiveMQ to make my application run?
Can't I use the one embedded in ServiceMix?
Thanks, GIUSEPPE not GUISEPPE :)


Gert Vanthienen wrote:
> 
> Guiseppe,
> 
> To connect to ActiveMQ from your simple visual application, the easiest 
> solution with JNDI would probably be to leverage ActiveMQ's built-in 
> JNDI support.  Have a look at 
> http://activemq.apache.org/jndi-support.html for more information.
> 
> Gert
> 
> 
> beppe82 wrote:
>> I get the SU working (I think) through the following configuration:
>> 
>> <beans xmlns:jms="http://servicemix.apache.org/jms/1.0";
>>      xmlns:beppe="http://giuseppe.org";>
>>      
>>      <!-- START SNIPPET: consumer -->
>>      <jms:endpoint service="beppe:jms-service" endpoint="jms"
>>              targetService="beppe:validate" targetEndpoint="endpoint"
>> role="consumer"
>>              destinationStyle="queue" 
>> jmsProviderDestinationName="validateQueue"
>>              connectionFactory="#jmsFactory"
>>              defaultMep="http://www.w3.org/2004/08/wsdl/in-only"/>
>>      <!-- END SNIPPET: consumer -->
>>      <bean id="jmsFactory"
>>              class="org.apache.activemq.pool.PooledConnectionFactory">
>>              <property name="connectionFactory">
>>                      <bean 
>> class="org.apache.activemq.ActiveMQConnectionFactory">
>>                              <property name="brokerURL" 
>> value="tcp://localhost:61616"/>
>>                      </bean>
>>              </property>
>>      </bean>
>> </beans>
>> 
>> Now, how can I send messages to that component? I tried the following
>> code,
>> but a NoInitialContextException is raised. Consider I have never used
>> JNDI,
>> so I wrote a simple visual application with a textArea and a button and
>> put
>> the following code in the action performed by the press of the button,
>> nothing else. The code is taken from a Sun tutorial and modified.
>> 
>> private void sendMessage() {
>>              /*
>>               * Create a JNDI API InitialContext object if none exists yet.
>>               */
>>              try {
>>                      jndiContext = new InitialContext();
>>              } catch (NamingException e) {
>>                      System.out.println("Could not create JNDI API " + 
>> "context: "
>>                                      + e.toString());
>>                      System.exit(1);
>>              }
>>              /*
>>               * Look up connection factory and queue. If either does not 
>> exist,
>> exit.
>>               */
>>              try {
>>                      queueConnectionFactory = (QueueConnectionFactory) 
>> jndiContext
>>                                      .lookup("ConnectionFactory");
>>                      queue = (Queue) jndiContext.lookup(queueName);
>>              } catch (NamingException e) {
>>                      System.out.println("JNDI API lookup failed: " + 
>> e.toString());
>>                      System.exit(1);
>>              }
>> 
>>              /*
>>               * Create connection. Create session from connection; false 
>> means
>>               * session is not transacted. Create sender and text message. 
>> Send
>>               * messages, varying text slightly. Send end-of-messages 
>> message.
>>               * Finally, close connection.
>>               */
>>              try {
>>                      queueConnection = 
>> queueConnectionFactory.createQueueConnection();
>>                      queueSession = queueConnection.createQueueSession(false,
>>                                      Session.AUTO_ACKNOWLEDGE);
>>                      queueSender = queueSession.createSender(queue);
>>                      message = queueSession.createTextMessage();
>>                      
>>                      message.setText(msgTxt.getText());
>>                      queueSender.send(message);
>> //                   for (int i = 0; i < NUM_MSGS; i++) {
>> //                           message.setText("This is message " + (i + 1));
>> //                           System.out.println("Sending message: " + 
>> message.getText());
>> //                           queueSender.send(message);
>> //                   }
>> 
>>                      /*
>>                       * Send a non-text control message indicating end of 
>> messages.
>>                       */
>> //                   queueSender.send(queueSession.createMessage());
>>              } catch (JMSException e) {
>>                      System.out.println("Exception occurred: " + 
>> e.toString());
>>              } finally {
>>                      if (queueConnection != null) {
>>                              try {
>>                                      queueConnection.close();
>>                              } catch (JMSException e) {
>>                              }
>>                      }
>>              }
>>      }
>> 
>> 
>> 
>> 
>> beppe82 wrote:
>>> Hi all. It's the first time I use JMS and JNDI... what is
>>> jndiConnectionFactoryName? How to use it? I tried to deploy a simple
>>> service unit:
>>>
>>> <beans xmlns:jms="http://servicemix.apache.org/jms/1.0";
>>>        xmlns:beppe="http://giuseppe.org";>
>>>
>>>     <!-- START SNIPPET: consumer -->
>>>     <jms:endpoint service="beppe:jms-service"
>>>                   endpoint="jms"
>>>                   targetService="beppe:validate"
>>>                   targetEndpoint="endpoint"
>>>                   role="consumer" 
>>>                   destinationStyle="queue"
>>>                   jmsProviderDestinationName="validateQueue"
>>>                   jndiConnectionFactoryName="ConnectionFactory"
>>>                   defaultMep="http://www.w3.org/2004/08/wsdl/in-only"; />
>>>     <!-- END SNIPPET: consumer -->
>>> </beans>
>>>
>>> but I get the following error, dependant on jndiConnectionFactoryName:
>>>
>>> java.lang.Exception: <?xml version="1.0" encoding="UTF-8"?>
>>> <jbi-task xmlns="http://java.sun.com/xml/ns/jbi/management-message";
>>> version="1.0
>>> ">
>>> <jbi-task-result>
>>> <frmwk-task-result>
>>> <frmwk-task-result-details>
>>> <task-result-details>
>>> <task-id>start</task-id>
>>> <task-result>FAILED</task-result>
>>> <message-type>ERROR</message-type>
>>> </task-result-details>
>>> </frmwk-task-result-details>
>>> </frmwk-task-result>
>>> <component-task-result
>>> xmlns="http://java.sun.com/xml/ns/jbi/management-message";
>>>         <component-name>servicemix-jms</component-name>
>>>         <component-task-result-details>
>>>                 <task-result-details>
>>>                         <task-id>start</task-id>
>>>                         <task-result>FAILED</task-result>
>>>                         <message-type>ERROR</message-type>
>>>                         <task-status-msg>
>>> <msg-loc-info>
>>> <loc-token/>
>>> <loc-message>Unable to start service unit</loc-message>
>>> </msg-loc-info>
>>> </task-status-msg>
>>>                         <exception-info>
>>>                                 <nesting-level>1</nesting-level>
>>>                                 <msg-loc-info>
>>>                                         <loc-token/>
>>>                                        
>>> <loc-message>org.apache.xbean.spring.jnd
>>> i.SpringInitialContextFactory</loc-message>
>>>                                        
>>> <stack-trace><![CDATA[javax.naming.NameN
>>> otFoundException: ConnectionFactory
>>>         at
>>> org.apache.xbean.spring.jndi.DefaultContext.lookup(DefaultContext.jav
>>> a:147)
>>>         at javax.naming.InitialContext.lookup(InitialContext.java:392)
>>>         at
>>> org.apache.servicemix.jms.AbstractJmsProcessor.getConnectionFactory(A
>>> bstractJmsProcessor.java:92)
>>>         at
>>> org.apache.servicemix.jms.AbstractJmsProcessor.start(AbstractJmsProce
>>> ssor.java:73)
>>>         at
>>> org.apache.servicemix.soap.SoapEndpoint.activate(SoapEndpoint.java:34
>>> 8)
>>>         at
>>> org.apache.servicemix.common.ServiceUnit.start(ServiceUnit.java:55)
>>>         at
>>> org.apache.servicemix.common.BaseServiceUnitManager.start(BaseService
>>> UnitManager.java:151)
>>>         at
>>> org.apache.servicemix.jbi.framework.ServiceUnitLifeCycle.start(Servic
>>> eUnitLifeCycle.java:103)
>>>         at
>>> org.apache.servicemix.jbi.framework.ServiceAssemblyLifeCycle.start(Se
>>> rviceAssemblyLifeCycle.java:130)
>>>         at
>>> org.apache.servicemix.jbi.framework.DeploymentService.start(Deploymen
>>> tService.java:374)
>>>         at
>>> org.apache.servicemix.jbi.framework.AutoDeploymentService.updateArchi
>>> ve(AutoDeploymentService.java:336)
>>>         at
>>> org.apache.servicemix.jbi.framework.AutoDeploymentService.updateExter
>>> nalArchive(AutoDeploymentService.java:201)
>>>         at
>>> org.apache.servicemix.jbi.container.JBIContainer.updateExternalArchiv
>>> e(JBIContainer.java:473)
>>>         at
>>> org.apache.servicemix.jbi.container.JBIContainer.updateExternalArchiv
>>> e(JBIContainer.java:483)
>>>         at
>>> org.apache.servicemix.jbi.framework.AdminCommandsService.deployServic
>>> eAssembly(AdminCommandsService.java:229)
>>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>         at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
>>> java:39)
>>>         at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
>>> sorImpl.java:25)
>>>         at java.lang.reflect.Method.invoke(Method.java:597)
>>>         at
>>> org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.jav
>>> a:216)
>>>         at
>>> org.apache.servicemix.jbi.management.BaseStandardMBean.invoke(BaseSta
>>> ndardMBean.java:318)
>>>         at
>>> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultM
>>> BeanServerInterceptor.java:836)
>>>         at
>>> com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761
>>> )
>>>         at
>>> javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnecti
>>> onImpl.java:1426)
>>>         at
>>> javax.management.remote.rmi.RMIConnectionImpl.access$200(RMIConnectio
>>> nImpl.java:72)
>>>         at
>>> javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run
>>> (RMIConnectionImpl.java:1264)
>>>         at java.security.AccessController.doPrivileged(Native Method)
>>>         at
>>> javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(R
>>> MIConnectionImpl.java:1366)
>>>         at
>>> javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImp
>>> l.java:788)
>>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>         at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
>>> java:39)
>>>         at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
>>> sorImpl.java:25)
>>>         at java.lang.reflect.Method.invoke(Method.java:597)
>>>         at
>>> sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)
>>>         at sun.rmi.transport.Transport$1.run(Transport.java:159)
>>>         at java.security.AccessController.doPrivileged(Native Method)
>>>         at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
>>>         at
>>> sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:5
>>> 35)
>>>         at
>>> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTranspor
>>> t.java:790)
>>>         at
>>> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport
>>> .java:649)
>>>         at
>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
>>> utor.java:885)
>>>         at
>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
>>> .java:907)
>>>         at java.lang.Thread.run(Thread.java:619)
>>> ]]></stack-trace>
>>>                                 </msg-loc-info>
>>>                         </exception-info>
>>>                 </task-result-details>
>>>         </component-task-result-details>
>>> </component-task-result>
>>> </jbi-task-result>
>>> </jbi-task>
>>>
>>>         at
>>> org.apache.servicemix.jbi.framework.ManagementSupport.failure(Managem
>>> entSupport.java:121)
>>>         at
>>> org.apache.servicemix.jbi.framework.ManagementSupport.failure(Managem
>>> entSupport.java:107)
>>>         at
>>> org.apache.servicemix.jbi.framework.ServiceAssemblyLifeCycle.start(Se
>>> rviceAssemblyLifeCycle.java:144)
>>>         at
>>> org.apache.servicemix.jbi.framework.DeploymentService.start(Deploymen
>>> tService.java:374)
>>>         at
>>> org.apache.servicemix.jbi.framework.AutoDeploymentService.updateArchi
>>> ve(AutoDeploymentService.java:336)
>>>         at
>>> org.apache.servicemix.jbi.framework.AutoDeploymentService.updateExter
>>> nalArchive(AutoDeploymentService.java:201)
>>>         at
>>> org.apache.servicemix.jbi.container.JBIContainer.updateExternalArchiv
>>> e(JBIContainer.java:473)
>>>         at
>>> org.apache.servicemix.jbi.container.JBIContainer.updateExternalArchiv
>>> e(JBIContainer.java:483)
>>>         at
>>> org.apache.servicemix.jbi.framework.AdminCommandsService.deployServic
>>> eAssembly(AdminCommandsService.java:229)
>>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>         at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
>>> java:39)
>>>         at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
>>> sorImpl.java:25)
>>>         at java.lang.reflect.Method.invoke(Method.java:597)
>>>         at
>>> org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.jav
>>> a:216)
>>>         at
>>> org.apache.servicemix.jbi.management.BaseStandardMBean.invoke(BaseSta
>>> ndardMBean.java:318)
>>>         at
>>> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultM
>>> BeanServerInterceptor.java:836)
>>>         at
>>> com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761
>>> )
>>>         at
>>> javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnecti
>>> onImpl.java:1426)
>>>         at
>>> javax.management.remote.rmi.RMIConnectionImpl.access$200(RMIConnectio
>>> nImpl.java:72)
>>>         at
>>> javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run
>>> (RMIConnectionImpl.java:1264)
>>>         at java.security.AccessController.doPrivileged(Native Method)
>>>         at
>>> javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(R
>>> MIConnectionImpl.java:1366)
>>>         at
>>> javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImp
>>> l.java:788)
>>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>         at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
>>> java:39)
>>>         at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
>>> sorImpl.java:25)
>>>         at java.lang.reflect.Method.invoke(Method.java:597)
>>>         at
>>> sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)
>>>         at sun.rmi.transport.Transport$1.run(Transport.java:159)
>>>         at java.security.AccessController.doPrivileged(Native Method)
>>>         at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
>>>         at
>>> sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:5
>>> 35)
>>>         at
>>> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTranspor
>>> t.java:790)
>>>         at
>>> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport
>>> .java:649)
>>>         at
>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
>>> utor.java:885)
>>>         at
>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
>>> .java:907)
>>>         at java.lang.Thread.run(Thread.java:619)
>>>
>>> Thanks, Giuseppe
>>>
>>>
>> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/jndiConnectionFactoryName-and-servicemix-jms-tf4085947s12049.html#a11614881
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Reply via email to