cxf-bc -> smx-bean -> cxf-se 
I wonder whether this receive soap message of client and return to them
does anybody know it?

-----------cxfbc ws_t02.wsdl--------------
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="HelloImplService" targetNamespace="http://ws.demo/";
xmlns:tns="http://ws.demo/"; xmlns:xsd="http://www.w3.org/2001/XMLSchema";
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";>
  <wsdl:types>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema";
xmlns:tns="http://ws.demo/"; elementFormDefault="unqualified"
targetNamespace="http://ws.demo/"; version="1.0">
...(omit)
  <wsdl:service name="HelloImplService">
    <wsdl:port name="HelloImplPort"
binding="tns:HelloImplServiceSoapBinding">
      <soap:address location="http://localhost:9090/HelloImplPort"/>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>


sic wrote:
> 
> I'm cxf component testing in Servicemix 3.3.1, Windows XP.
> As a example of cxf-wsdl-first, it's quite simple that 
> client -> cxf-bc -> cxf-se 
> and cxf-se returns response message to the webservice client.
> It´s an easy task.
> 
> By the way, I wanna add other service(or services) to this structure (e.g.
> sm-bean - disposing of business)
> so I changed this as following
> Webservice client -> cxf-bc -> eip(static routing slip) -> sm-bean
>                                                                               
>                                                          
> -> cxf-se
> 
> The client is soupUI 3.0.1 and send soap message based on the WSDL in
> cxf-bc.
> In this case, is it impossible that sm-bean receives message from cxf-bc
> and sends transformed message
> to the cxf-se? or is there better way to operate this logic?
> sm-bean code, xbean configuration and result logs are like this
> 
> -----------cxfbc xbean.xml-----------------
> <beans xmlns:cxfbc="http://servicemix.apache.org/cxfbc/1.0";
>          xmlns:demows="http://ws.demo/";>
> <cxfbc:consumer wsdl="classpath:ws_t02.wsdl"
>       targetService="demows:route-slip"
>        targetEndpoint="static-routing-slip"
>          useJBIWrapper="true"
>       >
>       <cxfbc:inInterceptors
>       ...(default interceptor)
>       />
> </cxfbc:consumer>
> ----------eip:static-routing-slip xbean.xml--------------
> <beans xmlns:eip="http://servicemix.apache.org/eip/1.0";
>          xmlns:demows="http://ws.demo/";
>          xmlns:testws="http://ws.test/";
>>
> 
>    <eip:static-routing-slip service="demows:route-slip"
> endpoint="static-routing-slip">
>       <eip:targets>
>        <eip:exchange-target service="demows:test-bean-su"/>
>        <eip:exchange-target service="testws:HelloImplService"
> endpoint="HelloImplPort" operation="testws:sayHello"/>
>       </eip:targets>
>    </eip:static-routing-slip>
> </beans>
> ---------sm-bean(demows:test-bean-su) onMessageExchange
> code---------------------
> public class TestBean implements MessageExchangeListener {
> 
>       private DeliveryChannel channel;
> 
>       public void onMessageExchange(MessageExchange exchange) throws
> MessagingException {
> 
>               SourceTransformer st = new SourceTransformer();
>               NormalizedMessage inMessage = exchange.getMessage("in");
>               String indata = st.contentToString(inMessage);
>               NormalizedMessage out = exchange.createMessage();
>               // suppose that this xml is return message after disposing 
> business
>               String retData = "<?xml version=\"1.0\" ?>\n"
>                               + "<root>qwer</root>\r\n";
>               out.setContent(new StringSource(retData));
>               exchange.setMessage(out, "out");
>               channel.send(exchange);
>       }
> }
> ----------cxfse xbean.xml---------------------
> <beans xmlns:cxfse="http://servicemix.apache.org/cxfse/1.0";>
>     <cxfse:endpoint useJBIWrapper="false" useSOAPEnvelope="false">
>         <cxfse:pojo>
>          <bean class="test.ws.HelloImpl" />
>         </cxfse:pojo>
>       <cxfse:inInterceptors
>               ...(default interceptor)
>       />
>     </cxfse:endpoint>
> </beans> 
> ----------cxfse test.ws.HelloImpl------------------
> @WebService
> public class HelloImpl {
> 
>       public String sayHello(String name) {
>               return "HI ~~ " + name;
>       }
> }
> --------------Logs---------------------------------
> INFO  - LoggingInInterceptor           - Inbound Message
> ----------------------------
> Encoding: UTF-8
> Headers: {Content-Length=[287], Host=[10.1.3.28:9090], User-Agent=[Jakarta
> Commons-HttpClient/3.1],
> accept-encoding=[gzip,deflate], SOAPAction=[""],
> content-type=[text/xml;charset=UTF-8]}
> Messages:
> Message:
> 
> Payload: <soapenv:Envelope
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; xmlns:ws="http:
> //ws.test/">
>    <soapenv:Header/>
>    <soapenv:Body>
>       <ws:sayHello>
>          <!--Optional:-->
>          <arg0>1234qwer</arg0>
>       </ws:sayHello>
>    </soapenv:Body>
> </soapenv:Envelope>
> --------------------------------------
> INFO  - JBITransportFactory            - configuring DeliveryChannel:  
> org.apache.servicemix.common
> .endpointdeliverychan...@1ccf0ad
> INFO  - PhaseInterceptorChain          - Interceptor has thrown exception,
> unwinding now Message par
> t root was not recognized.  (Does it exist in service WSDL?)
> INFO  - LoggingOutInterceptor          - Outbound Message
> ---------------------------
> Encoding: UTF-8
> Headers:
> Messages:
> Payload: <ns1:Fault
> xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/";><faultcode>ns1:Client</fau
> ltcode><faultstring>Message part root was not recognized.  (Does it exist
> in service WSDL?)</faultst
> ring></ns1:Fault>
> --------------------------------------
> WARN  - SimpleEndpoint                 - SimpleEndpoint.fail called:
> INFO  - PhaseInterceptorChain          - Interceptor has thrown exception,
> unwinding now Message par
> t root was not recognized.  (Does it exist in service WSDL?)
> INFO  - LoggingOutInterceptor          - Outbound Message
> ---------------------------
> Encoding: UTF-8
> Headers: {}
> Messages:
> Payload: <soap:Envelope
> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";><soap:Body><soap:Faul
> t><faultcode>soap:Server</faultcode><faultstring>Message part root was not
> recognized.  (Does it exi
> st in service
> WSDL?)</faultstring></soap:Fault></soap:Body></soap:Envelope>
> --------------------------------------
> 
> Additionally I think that the next best way is
> Webservice client -> cxf-bc -> eip(static routing slip) -> sm-bean
> I wonder if sm-bean receives message from cxf-bc and return response
> messages to the client using a cxf-bc interceptor.
> 

-- 
View this message in context: 
http://www.nabble.com/Question-about-cxf-bc-and-cxf-se-with-sm-bean-tp25467617p25483317.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Reply via email to