Hi Freeman,

Thank you very much for your answer!

I changed the WSDL but looks like the CXF-BC component still understands the
message exchange like "in-out".

What I want to do is:

[External client]-----SOAP(in-only)---->[CXF-BC
consumer]---(in-only)--->[JMS provider]--->(JMS queue)
(JMS queue)--->[CXF-BC provider]----SOAP--->[External web service]

I want to use the JMS queue to provide asyncronous behavior to the service.
Is there a better way to achieve this? Maybe the JMS flow?

I am a newbie on the WSDL field. I've found that the way to configure an
operation as one-way in WSDL is to create the operation with no "output"
elements.

If you have an example of a WSDL that works as in-only please send it to me.

Follow the WSDL code i am using:
==================================================
*

<?xml version="1.0" encoding="UTF-8"?>

<wsdl:definitions xmlns:ns1="http://schemas.xmlsoap.org/wsdl/soap/http";
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/ " xmlns:tns="
http://DefaultNamespace <http://defaultnamespace/>" xmlns:wsdl="
http://schemas.xmlsoap.org/wsdl/"; xmlns:xsd="http://www.w3.org/2001/XMLSchema";
name="PedidoService"
targetNamespace="http://DefaultNamespace<http://defaultnamespace/>
">

<wsdl:types>

<xsd:schema attributeFormDefault="unqualified"
elementFormDefault="qualified"
targetNamespace="http://DefaultNamespace<http://defaultnamespace/>
">

<xsd:element name="enviarPedido" type="tns:enviarPedido"/>

<xsd:complexType name="enviarPedido">

<xsd:sequence>

<xsd:element minOccurs="0" name="arg0" type="xsd:string"/>

</xsd:sequence>

</xsd:complexType>

<xsd:element name="enviarPedidoResponse" type="tns:enviarPedidoResponse"/>

<xsd:complexType name="enviarPedidoResponse">

<xsd:sequence/>

</xsd:complexType>

</xsd:schema>

</wsdl:types>

<wsdl:message name="enviarPedido">

<wsdl:part element="tns:enviarPedido" name="parameters">

</wsdl:part>

</wsdl:message>

<wsdl:message name="enviarPedidoResponse">

<wsdl:part element="tns:enviarPedidoResponse" name="parameters">

</wsdl:part>

</wsdl:message>

<wsdl:portType name="PedidoServicePortType">

<wsdl:operation name="enviarPedido">

<wsdl:input message="tns:enviarPedido" name="enviarPedido">

</wsdl:input>

</wsdl:operation>

</wsdl:portType>

<wsdl:binding name="PedidoServiceSoapBinding"
type="tns:PedidoServicePortType">

<soap:binding style="document" transport="
http://schemas.xmlsoap.org/soap/http"/>

<wsdl:operation name="enviarPedido">

<soap:operation soapAction="enviarPedido" style="document"/>

<wsdl:input name="enviarPedido">

<soap:body use="literal"/>

</wsdl:input>

</wsdl:operation>

</wsdl:binding>

<wsdl:service name="PedidoService">

<wsdl:port binding="tns:PedidoServiceSoapBinding" name="PedidoServicePort">

<soap:address location="http://localhost:6981/PedidoService"/>

</wsdl:port>

</wsdl:service>

</wsdl:definitions>

*==================================================
I have two SU´s:

SU 01:
==================================================
*

<beans

xmlns:cxfbc="http://servicemix.apache.org/cxfbc/1.0";

xmlns:pedidos="http://DefaultNamespace <http://defaultnamespace/>">

<cxfbc:consumer

wsdl="classpath:pedidos.wsdl"

targetService="pedidos:PedidoFilaProvider"

endpoint="PedidoPort"

/>

<cxfbc:provider

wsdl="classpath:pedidos.wsdl"

locationURI="http://localhost:6980/PedidoService";

service="pedidos:PedidoService">

</cxfbc:provider>

</beans>
*
 ==================================================

SU 02:
 ==================================================
*

<beans

xmlns:jms="http://servicemix.apache.org/jms/1.0";

xmlns:pedidos="http://DefaultNamespace <http://defaultnamespace/>">

<!--

Read data from NMR and sends to jms:queue/pedidoFila

-->

<jms:endpoint

service="pedidos:PedidoFilaProvider"

endpoint="PedidoFilaProvider"

role="provider"

destinationStyle="queue"

jmsProviderDestinationName="queue/pedidoFila"

connectionFactory="#connectionFactory"

interfaceName="pedidos:PedidoFila"

/>

<jms:endpoint

service="pedidos:PedidoFilaConsumer"

endpoint="PedidoFilaConsumer"

targetService="pedidos:PedidoService"

role="consumer"

destinationStyle="queue"

jmsProviderDestinationName="queue/pedidoFila"

connectionFactory="#connectionFactory"

/>

<bean

id="connectionFactory"

class="org.apache.activemq.ActiveMQConnectionFactory">

<property

name="brokerURL"

value="tcp://localhost:61616"

/>

</bean>

</beans>
*
Best regards,

Wilson

==================================================

On Jan 1, 2008 3:54 AM, Freeman Fang <[EMAIL PROTECTED]> wrote:

> Hi Wilson,
> cxf-bc will detect the mep for an invocation based on the service model
> which is built from the wsdl automatically , so you needn't specify it
> explicitly yourself.
>
> Best Regards
> Freeman
>
>
>

Reply via email to