Hi Freeman,

I did the change you suggested. Now it is working!

Thank you!

Wilson.


Freeman Fang-2 wrote:
> 
> Hi Wilson,
> 
> Seems that the operation info of the MessageExchange is missing.
> Would you please add
> defaultOperation="pedido :enviarPedido "
> for your jms consumer endpoint and try again?
> 
> Best Regards
> 
> Freeman
> 
> Wilson Freitas wrote:
>> Hi,
>>
>> I am using servicemix 3.2.1.
>>
>> I am trying to do this:
>>
>> External client-----[SOAP]---->CXF-BC Consumer---->JMS Provider---->(
>> jms queue)------>JMS Consumer------> CXF-BC
>> Provider----[SOAP]---->External service
>>
>> All MEPs are InOnly. If CXF-BC sends messages directly to CXF-BC
>> provider (no JMS) it works fine. When I add the JMS endpoints the
>> message is not delivered and I have the following console output
>> during message exchange:
>>
>> -------------CONSOLE OUTPUT - BEGIN ---------------------------------
>> ERROR - CxfBcComponent                 - Error processing exchange
>> InOnly[
>>   id: ID:10.0.0.71-11763adf8e5-11:10
>>   status: Active
>>   role: provider
>>   service: {http://www.tc.com/ pedido}pedido
>>   endpoint: pedidoSOAP
>>   in: <? xml version="1.0" encoding="UTF-8"?><jbi:message
>> xmlns:jbi="http://java.sun.com/ xml/ns/jbi/wsdl -11-wrapper"
>> xmlns:msg="http://www. tc.com/pedido" name=" enviarPedidoRequest"
>> type="msg:enviarPedidoRequest" version="
>> 1.0"><jbi:part><ns2:enviarPedido xmlns:ns2="http://www.
>> tc.com/pedido"><in>AAAAAAAAAAHHHHH![0]</in></ns2:
>> enviarPedido></jbi:part></jbi:message>
>> ]
>> java. lang.NullPointerException
>>         at java.util.concurrent.
>> ConcurrentHashMap.hash(ConcurrentHashMap.java:157)
>>         at java.util.concurrent.
>> ConcurrentHashMap.get(ConcurrentHashMap.java:730)
>>         at org. apache.cxf.service.model.BindingInfo.
>> getOperation(BindingInfo.java:112)
>>         at org.apache. servicemix.cxfbc.CxfBcProvider.process(
>> CxfBcProvider.java:123)
>>         at org.apache.servicemix.common.
>> AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:538)
>>         at org. apache.servicemix.common.
>> AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:490)
>>         at org. apache.servicemix.common.
>> BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
>>         at org. apache.servicemix.jbi.messaging.
>> DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:610)
>>         at org. apache.servicemix.jbi .nmr.flow.AbstractFlow.
>> doRouting(AbstractFlow.java:170)
>>         at org.apache. servicemix.jbi.nmr.flow.
>> seda.SedaFlow.doRouting( SedaFlow.java:167)
>>         at org.apache.servicemix. jbi.nmr.flow.seda.
>> SedaQueue$1.run(SedaQueue.java:134)
>>         at java.util.concurrent.
>> ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
>>         at java. util.concurrent.ThreadPoolExecutor$Worker.run(
>> ThreadPoolExecutor.java:675)
>>         at java.lang.Thread.run(Thread.java:595)
>> ERROR - JmsComponent                   - Error processing exchange
>> InOnly[
>>   id: ID:10.0.0.71-11763adf8e5-11:10
>>   status: Error
>>   role: consumer
>>   service: {http://www.tc.com/pedido} pedido
>>   endpoint: pedidoSOAP
>>   in: <?xml version="1.0" encoding=" UTF-8"?><jbi:message
>> xmlns:jbi="http://java.sun.com/ xml/ns/jbi/wsdl -11-wrapper"
>> xmlns:msg="http://www. tc.com/pedido" name=" enviarPedidoRequest"
>> type="msg:enviarPedidoRequest" version="
>> 1.0"><jbi:part><ns2:enviarPedido xmlns:ns2="http://www.
>> tc.com/pedido"><in>AAAAAAAAAAHHHHH![0]</in></ns2:
>> enviarPedido></jbi:part></jbi:message>
>>   error: java. lang.NullPointerException
>> ]
>> java.lang. UnsupportedOperationException: A destination must be
>> specified.
>>         at org.apache.
>> activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:448)
>>         at org. apache.activemq.ActiveMQMessageProducer
>> .send(ActiveMQMessageProducer.java:356)
>>         at org.apache.
>> servicemix.jms.multiplexing.MultiplexingConsumerProcessor.process(
>> MultiplexingConsumerProcessor.java:120)
>>         at org.apache.servicemix.common. AsyncBaseLifeCycle.doProcess(
>> AsyncBaseLifeCycle.java:538)
>>         at org.apache.servicemix.common.
>> AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:512)
>>         at org. apache.servicemix.common.
>> BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
>>         at org. apache.servicemix.jbi.messaging.
>> DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:610)
>>         at org. apache.servicemix.jbi .nmr.flow.AbstractFlow.
>> doRouting(AbstractFlow.java:170)
>>         at org.apache. servicemix.jbi.nmr.flow.
>> seda.SedaFlow.doRouting( SedaFlow.java:167)
>>         at org.apache.servicemix. jbi.nmr.flow.seda.
>> SedaQueue$1.run(SedaQueue.java:134)
>>         at java.util.concurrent.
>> ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
>>         at java. util.concurrent.ThreadPoolExecutor$Worker.run(
>> ThreadPoolExecutor.java:675)
>>         at java.lang.Thread.run(Thread.java:595)
>> ERROR - JmsComponent                   - Error setting exchange status to
>> ERROR
>> javax.jbi .messaging.MessagingException: illegal call to send / sendSync
>>         at org. apache.servicemix.jbi
>> .messaging.MessageExchangeImpl.handleSend(
>> MessageExchangeImpl.java:614)
>>         at org.apache.servicemix.
>> jbi.messaging.DeliveryChannelImpl.doSend(
>> DeliveryChannelImpl.java:385)
>>         at org.apache.servicemix.
>> jbi.messaging.DeliveryChannelImpl.send(DeliveryChannelImpl.java:431)
>>         at org. apache.servicemix.common.
>> BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:58)
>>         at org. apache.servicemix.jbi.messaging.
>> DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:610)
>>         at org. apache.servicemix.jbi .nmr.flow.AbstractFlow.
>> doRouting(AbstractFlow.java:170)
>>         at org.apache. servicemix.jbi.nmr.flow.
>> seda.SedaFlow.doRouting( SedaFlow.java:167)
>>         at org.apache.servicemix. jbi.nmr.flow.seda.
>> SedaQueue$1.run(SedaQueue.java:134)
>>         at java.util.concurrent.
>> ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
>>         at java. util.concurrent.ThreadPoolExecutor$Worker.run(
>> ThreadPoolExecutor.java:675)
>>         at java.lang.Thread.run(Thread.java:595)
>> -------------CONSOLE OUTPUT - END ---------------------------------
>>
>> Endpoints configuration:
>>
>> ------------CXF-BC---BEGIN-------------------------------------------------
>> <?xml version="1.0" encoding="UTF-8"?>
>> <beans
>>      xmlns:cxfbc="http://servicemix.apache.org/cxfbc/1.0";
>>      xmlns:pedido="http://www.tc.com/pedido";>
>>
>>      <cxfbc:consumer
>>              wsdl="classpath:pedido.wsdl"
>>              endpoint="pedidoHTTPConsumer"
>>              interfaceName="pedido:pedidoHTTPConsumerInterface"
>>              targetService="pedido:PedidoFilaProvider"
>>      />
>>
>>      <cxfbc:provider
>>              wsdl="classpath:pedido.wsdl"
>>              endpoint="pedidoSOAP"
>>              service="pedido:pedido"
>>              interfaceName="pedido:pedidoInterface"
>>              locationURI="http://localhost:9000/pedidoService";
>>      />
>>              
>> </beans>
>> ------------CXF-BC---END-------------------------------------------------
>>
>> ------------JMS---BEGIN-------------------------------------------------
>> <?xml version="1.0" encoding="UTF-8"?>
>> <beans
>>     xmlns:jms="http://servicemix.apache.org/jms/1.0";
>>      xmlns:pedido="http://www.tc.com/pedido";>
>>
>>      <jms:endpoint
>>              service="pedido:PedidoFilaProvider"
>>              endpoint="PedidoFilaProvider"
>>              role="provider"
>>              destinationStyle="queue"
>>              jmsProviderDestinationName="queue/pedidoFila"
>>              connectionFactory="#connectionFactory"
>>              interfaceName="pedido:PedidoFila"
>>      />
>>              
>>      <jms:endpoint
>>              service="pedido:PedidoFilaConsumer"
>>              endpoint="PedidoFilaConsumer"
>>              targetService="pedido:pedido"
>>              role="consumer"
>>              destinationStyle="queue"
>>              jmsProviderDestinationName="queue/pedidoFila"
>>              connectionFactory="#connectionFactory"
>>              defaultMep="http://www.w3.org/2004/08/wsdl/in-only";
>>      />
>>              
>>      <bean
>>              id="connectionFactory"
>>              class="org.apache.activemq.ActiveMQConnectionFactory">
>>              
>>              <property
>>                      name="brokerURL"
>>                      value="tcp://localhost:61616"
>>              />
>>      </bean>
>>
>> </beans>
>> ------------JMS---END-------------------------------------------------
>>
>> ------------WSDL-BEGIN--------------------------------------------
>> <?xml version="1.0" encoding="UTF-8"?>
>> <wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
>>      xmlns:tns="http://www.tc.com/pedido";
>>      xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
>>      xmlns:xsd="http://www.w3.org/2001/XMLSchema"; name="pedido"
>>      targetNamespace="http://www.tc.com/pedido";>
>>      <wsdl:types>
>>              <xsd:schema targetNamespace="http://www.tc.com/pedido";>
>>                      <xsd:element name="enviarPedido">
>>                              <xsd:complexType>
>>                                      <xsd:sequence>
>>                                              <xsd:element name="in" 
>> type="xsd:string" />
>>                                      </xsd:sequence>
>>                              </xsd:complexType>
>>                      </xsd:element>
>>              </xsd:schema>
>>      </wsdl:types>
>>      <wsdl:message name="enviarPedidoRequest">
>>              <wsdl:part element="tns:enviarPedido" name="parameters" />
>>      </wsdl:message>
>>      <wsdl:portType name="pedido">
>>              <wsdl:operation name="enviarPedido">
>>                      <wsdl:input message="tns:enviarPedidoRequest" />
>>
>>              </wsdl:operation>
>>      </wsdl:portType>
>>      <wsdl:binding name="pedidoSOAP" type="tns:pedido">
>>              <soap:binding style="document"
>>                      transport="http://schemas.xmlsoap.org/soap/http"; />
>>              <wsdl:operation name="enviarPedido">
>>                      <soap:operation
>>                              
>> soapAction="http://www.tc.com/pedido/enviarPedido"; />
>>                      <wsdl:input>
>>                              <soap:body use="literal" />
>>                      </wsdl:input>
>>              </wsdl:operation>
>>      </wsdl:binding>
>>      <wsdl:service name="pedido">
>>              <wsdl:port binding="tns:pedidoSOAP" name="pedidoSOAP">
>>                      <soap:address 
>> location="http://0.0.0.0:9001/pedidoService"; />
>>              </wsdl:port>
>>      </wsdl:service>
>> </wsdl:definitions>
>> ------------WSDL-END--------------------------------------------
>>
>> Any ideas?
>>
>> Thank you,
>>
>> Wilson
>>
>>   
> 
> 

-- 
View this message in context: 
http://www.nabble.com/CXF-BC-%2B-JMS-problem-tp14737681s12049p14761734.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Reply via email to