Considering the debug log, it seems Servicemix parse my soap envelope and
build a jbi message.
Is this message sent to the Application Server?
Am i wrong?



Florent wrote:
> 
> Hi Freeman,
> 
> Indeed, http://localhost:9080/PROTOServiceMixWeb/services/ProtoBean use
> soap 1.1.
> But i don't know which soap version
> http://localhost:8092/ProtoBeanService/ is using...
> 
> The third party webservice is hosted by Websphere Application Server 6.1.
> 
> I don't really know what cxf is doing to the message, is it possible to
> log/trace it?
> 
> I enabled debug log and added interceptors in my xbean.xml, here is the
> output :
> 
> INFO: Inbound Message
> --------------------------------------
> Encoding: utf-8
> Headers: {Content-Length=[353], User-Agent=[IBM WebServices/1.0],
> Host=[ITEM-509
> 73:8092], connection=[Keep-Alive], Date=[Mon, 26 Nov 2007 08:59:47 GMT],
> SOAPAct
> ion=[], Pragma=[no-cache], content-type=[text/xml; charset=utf-8],
> Cache-Control
> =[no-cache], Accept=[application/soap+xml,multipart/related,text/*]}
> Message:
> <env:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
> xmlns:en
> v="http://schemas.xmlsoap.org/soap/envelope/";
> xmlns:xsd="http://www.w3.org/2001/
> XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> xmlns:tns="http
> ://ejb.proto.mycompany.com"><env:Body><tns:getProtoDTO>ddd</tns:getPr
> otoDTO></env:Body></env:Envelope>
> --------------------------------------
> DEBUG - CxfBcComponent                 - Created correlation id:
> ID:172.xx.xxx.xxx-1167b1f58b2-4:1
> DEBUG - DeliveryChannelImpl            - SendSync
> ID:172.xx.xxx.xxx-1167b1f58b2-4:1 in DeliveryChannel{servicemix-cxf-bc}
> DEBUG - SedaFlow                       - Called Flow send
> DEBUG - DeliveryChannelImpl            - Waiting for exchange
> ID:172.xx.xxx.xxx-1167b1f58b2-4:1 (1d7a7b3) to be answered in
> DeliveryChannel{servicemix-cxf-bc} from sendSync
> DEBUG - SedaQueue                      -
> [EMAIL PROTECTED] dequeued
> exchange: InOut[
>   id: ID:172.xx.xxx.xxx-1167b1f58b2-4:1
>   status: Active
>   role: provider
>   interface: {http://ejb.proto.mycompany.com}ProtoBean
>   service: {http://ejb.proto.mycompany.com}ProtoBeanService
>   endpoint: ProtoBean
>   operation: {http://ejb.proto.mycompany.com}getProtoDTO
>   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://ejb.proto.mycompany.com"; name=
> "getProtoDTORequest" type="msg:getProtoDTORequest"
> version="1.0"><jbi:part><tns:
> getProtoDTO xmlns:tns="http://ejb.proto.mycompany.com";>ddd</tns:getPr
> otoDTO></jbi:part></jbi:message>
> ]
> DEBUG - CxfBcComponent                 - Received exchange: status:
> Active, role: provider
> DEBUG - CxfBcComponent                 - Retrieved correlation id:
> ID:172.xx.xxx.xxx-1167b1f58b2-4:1
> DEBUG - DeliveryChannelImpl            - Send
> ID:172.xx.xxx.xxx-1167b1f58b2-4:1in DeliveryChannel{servicemix-cxf-bc}
> DEBUG - SedaFlow                       - Called Flow send
> DEBUG - SedaQueue                      -
> [EMAIL PROTECTED] dequeued
> exchange: InOut[
>   id: ID:172.xx.xxx.xxx-1167b1f58b2-4:1
>   status: Active
>   role: consumer
>   interface: {http://ejb.proto.mycompany.com}ProtoBean
>   service: {http://ejb.proto.mycompany.com}ProtoBeanService
>   endpoint: ProtoBean
>   operation: {http://ejb.proto.mycompany.com}getProtoDTO
>   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://ejb.proto.mycompany.com"; name=
> "getProtoDTORequest" type="msg:getProtoDTORequest"
> version="1.0"><jbi:part><tns:
> getProtoDTO xmlns:tns="http://ejb.proto.mycompany.com";>ddd</tns:getPr
> otoDTO></jbi:part></jbi:message>
>   out: null
> ]
> DEBUG - DeliveryChannelImpl            - Notifying exchange
> ID:172.xx.xxx.xxx-1167b1f58b2-4:1(1d7a7b3) in
> DeliveryChannel{servicemix-cxf-bc} from processInboundSynchronousExchange
> DEBUG - DeliveryChannelImpl            - Notified:
> ID:172.xx.xxx.xxx-1167b1f58b2-4:1(1d7a7b3) in
> DeliveryChannel{servicemix-cxf-bc} from sendSync
> 26 nov. 2007 09:59:48
> org.apache.cxf.interceptor.LoggingOutInterceptor$LoggingCallback onClose
> INFO: Outbound Message
> --------------------------------------
> <soap:Envelope
> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";><soap:Body
>  /></soap:Envelope>
> --------------------------------------
> DEBUG - DeliveryChannelImpl            - Send
> ID:172.xx.xxx.xxx-1167b1f58b2-4:1
> in DeliveryChannel{servicemix-cxf-bc}
> DEBUG - SedaFlow                       - Called Flow send
> DEBUG - SedaQueue                      -
> [EMAIL PROTECTED] dequeued
> exchange: InOut[
>   id: ID:172.xx.xxx.xxx-1167b1f58b2-4:1
>   status: Done
>   role: provider
>   interface: {http://ejb.proto.mycompany.com}ProtoBean
>   service: {http://ejb.proto.mycompany.com}ProtoBeanService
>   endpoint: ProtoBean
>   operation: {http://ejb.proto.mycompany.com}getProtoDTO
>   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://ejb.proto.mycompany.com"; name=
> "getProtoDTORequest" type="msg:getProtoDTORequest"
> version="1.0"><jbi:part><tns:
> getProtoDTO xmlns:tns="http://ejb.proto.mycompany.com";>ddd</tns:getPr
> otoDTO></jbi:part></jbi:message>
>   out: null
> ]
> DEBUG - CxfBcComponent                 - Received exchange: status: Done,
> role:provider
> DEBUG - CxfBcComponent                 - Retrieved correlation id:
> ID:172.xx.xxx.xxx-1167b1f58b2-4:1
> javax.jbi.messaging.MessagingException: Out not supported
>         at
> org.apache.servicemix.jbi.messaging.MessageExchangeImpl.setMessage(MessageExchangeImpl.java:357)
>         at
> org.apache.servicemix.cxfbc.CxfBcProviderMessageObserver.onMessage(CxfBcProviderMessageObserver.java:125)
>         at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1932)
>         at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1790)
>         at
> org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:166)
>         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)
> 
> 
> 
> Here is my wsdl used by servicemix (the one used by the AS is the same
> one, except the service location) :
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions targetNamespace="http://ejb.proto.mycompany.com";
>       xmlns:impl="http://ejb.proto.mycompany.com";
>       xmlns:intf="http://ejb.proto.mycompany.com";
>       xmlns:tns2="http://dto.proto.mycompany.com";
>       xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
>       xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/";
>       xmlns:wsi="http://ws-i.org/profiles/basic/1.1/xsd";
>       xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
>       <wsdl:types>
>               <schema targetNamespace="http://ejb.proto.mycompany.com";
>                       xmlns="http://www.w3.org/2001/XMLSchema";
>                       xmlns:tns2="http://dto.proto.mycompany.com";
>                       xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
>                       xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
>                       <import namespace="http://dto.proto.mycompany.com"; />
>                       <element name="getProtoDTOResponse">
>                               <complexType>
>                                       <sequence>
>                                               <element 
> name="getProtoDTOReturn"
>                                                       nillable="true" 
> type="tns2:ProtoDTO" />
>                                       </sequence>
>                               </complexType>
>                       </element>
>                       <element name="getProtoDTO">
>                               <complexType>
>                                       <sequence>
>                                               <element name="param" 
> nillable="true"
>                                                       type="xsd:string" />
>                                       </sequence>
>                               </complexType>
>                       </element>
>                       <complexType name="ArrayOf_xsd_nillable_string">
>                               <sequence>
>                                       <element maxOccurs="unbounded" 
> minOccurs="0"
>                                               name="string" nillable="true" 
> type="xsd:string" />
>                               </sequence>
>                       </complexType>
>               </schema>
>               <schema targetNamespace="http://dto.proto.mycompany.com";
>                       xmlns="http://www.w3.org/2001/XMLSchema";
>                       xmlns:intf="http://ejb.proto.mycompany.com";
>                       xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
>                       xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
>                       <import namespace="http://ejb.proto.mycompany.com"; />
>                       <complexType name="ProtoDTO">
>                               <sequence>
>                                       <element name="date" nillable="true"
>                                               type="xsd:dateTime" />
>                                       <element name="dble" nillable="true"
>                                               type="xsd:double" />
>                                       <element name="integ" type="xsd:int" />
>                                       <element name="liste" nillable="true"
>                                               
> type="impl:ArrayOf_xsd_nillable_string" />
>                               </sequence>
>                       </complexType>
>               </schema>
>       </wsdl:types>
> 
>       <wsdl:message name="getProtoDTORequest">
>               <wsdl:part element="intf:getProtoDTO" name="parameters" />
> 
>       </wsdl:message>
> 
>       <wsdl:message name="getProtoDTOResponse">
>               <wsdl:part element="intf:getProtoDTOResponse" name="parameters" 
> />
> 
>       </wsdl:message>
> 
>       <wsdl:portType name="ProtoBean">
>               <wsdl:operation name="getProtoDTO">
>                       <wsdl:input message="intf:getProtoDTORequest"
>                               name="getProtoDTORequest" />
> 
>                       <wsdl:output message="intf:getProtoDTOResponse"
>                               name="getProtoDTOResponse" />
> 
>               </wsdl:operation>
> 
>       </wsdl:portType>
> 
>       <wsdl:binding name="ProtoBeanSoapBinding" type="intf:ProtoBean">
> 
>               <wsdlsoap:binding style="document"
>                       transport="http://schemas.xmlsoap.org/soap/http"; />
> 
>               <wsdl:operation name="getProtoDTO">
>                       <wsdlsoap:operation soapAction="getProtoDTO" />
> 
>                       <wsdl:input name="getProtoDTORequest">
>                               <wsdlsoap:body use="literal" />
> 
>                       </wsdl:input>
> 
>                       <wsdl:output name="getProtoDTOResponse">
>                               <wsdlsoap:body use="literal" />
> 
>                       </wsdl:output>
> 
>               </wsdl:operation>
> 
>       </wsdl:binding>
> 
>       <wsdl:service name="ProtoBeanService">
>               <wsdl:port binding="intf:ProtoBeanSoapBinding"
>                       name="ProtoBean">
>                       <wsdlsoap:address
>                               
> location="http://localhost:8092/ProtoBeanService/"; />
> 
>               </wsdl:port>
> 
>       </wsdl:service>
> 
> </wsdl:definitions>
> 
> Thanks in advance,
> Florent.
> 
> 
> Freeman Fang-2 wrote:
>> 
>> Hi Florent,
>> Do you mean 
>> http://localhost:9080/PROTOServiceMixWeb/services/ProtoBean   use 
>> soap1.1 and http://localhost:8092/ProtoBeanService/  use soap 1.2?
>> Which soap toolkit are the third party webservice using?
>> Would you please append the wsdl used for two webservices?
>> 
>> Best Regards
>> 
>> Freeman
>> 
>> 
>> Florent wrote:
>>> If i use the following code to access to my web service, it works fine : 
>>>
>>> String endpoint =
>>> "http://localhost:9080/PROTOServiceMixWeb/services/ProtoBean";;
>>>
>>> String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
>>>                                             "<env:Envelope
>>> xmlns:env=\"http://schemas.xmlsoap.org/soap/envelope/\";
>>> " +
>>>                                     
>>> "xmlns:tns=\"http://ejb.proto.mycompany.com\";>" +
>>>                                     "<env:Body>" +
>>>                                     "<tns:getProtoDTO>" +
>>>                                     
>>> "<tns:getProtoDTORequest>0</tns:getProtoDTORequest>" +
>>>                                     "</tns:getProtoDTO>" +
>>>                                             "</env:Body>" +
>>>                                             "</env:Envelope>";
>>>             
>>>             MessageFactory mf = MessageFactory.newInstance();
>>>             SOAPMessage smsg = mf.createMessage(new MimeHeaders(), new
>>> ByteArrayInputStream(xml.getBytes()));
>>>             
>>>             SOAPConnection conn =
>>> SOAPConnectionFactory.newInstance().createConnection();
>>>         SOAPMessage response = conn.call(smsg, url);
>>>         
>>>         SOAPEnvelope env = response.getSOAPPart().getEnvelope();
>>>
>>>
>>> If i try to call the fellowing url :
>>> http://localhost:8092/ProtoBeanService/
>>> i get an error : No SOAPAction header (Application server log)... That's
>>> why
>>> i was wondering about the soap version.
>>>
>>> I get the following error in servicemix log : 
>>>
>>> javax.jbi.messaging.MessagingException: Out not supported
>>>         at
>>> org.apache.servicemix.jbi.messaging.MessageExchangeImpl.setMessage(MessageExchangeImpl.java:357)
>>>         at
>>> org.apache.servicemix.cxfbc.CxfBcProviderMessageObserver.onMessage(CxfBcProviderMessageObserver.java:125)
>>>         at
>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1932)
>>>         at
>>> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1790)
>>>         at
>>> org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:166)
>>>         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)
>>>
>>>
>>> Any idea?
>>>
>>> Thank you in advance,
>>> Florent.
>>>
>>>
>>>
>>> Freeman Fang wrote:
>>>   
>>>> Hi,
>>>>
>>>> You needn't specify it in cxf bc endpint configuration. Cxf bc should 
>>>> support both of it by default.
>>>> Cxf bc will parse the wsdl you provided and create service model 
>>>> accordingly, extract soap version from your wsdl binding part.
>>>>
>>>> Best Regards
>>>>
>>>> Freeman
>>>>
>>>>
>>>> Florent wrote:
>>>>     
>>>>> Hello,
>>>>>
>>>>> I'm trying to expose a third party webservice to the bus, using cxf.
>>>>>
>>>>> I'd like to know if i can set the soap version. For example, when i
>>>>> was
>>>>> using service-http, there was a SoapVersion attribute, but i didn't
>>>>> find
>>>>> one
>>>>> for the servicemix-cxf-bc-3.2-schema.
>>>>>
>>>>> Is soap 1.1 or 1.2 used?
>>>>>
>>>>> Here is my xbean.xml :
>>>>>
>>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>>> <beans xmlns:cxfbc="http://servicemix.apache.org/cxfbc/1.0";
>>>>>        xmlns:ns1="http://ejb.proto.mycompany.com";>
>>>>>        
>>>>>       <cxfbc:consumer 
>>>>>                         wsdl="classpath:ProtoBean.wsdl" 
>>>>>                         endpoint="ProtoBeanPort"
>>>>>                         targetEndpoint="ProtoBean" 
>>>>>                         targetService="ns1:ProtoBeanService" 
>>>>>                         targetInterface="ns1:ProtoBean" 
>>>>>                         > 
>>>>>       </cxfbc:consumer> 
>>>>>   
>>>>>       <cxfbc:provider 
>>>>>                         wsdl="classpath:ProtoBean.wsdl" 
>>>>>                        
>>>>> locationURI="http://localhost:9080/PROTOServiceMixWeb/services/ProtoBean"; 
>>>>>                         service="ns1:ProtoBeanService" 
>>>>>                         endpoint="ProtoBean" 
>>>>>                         interfaceName="ns1:ProtoBean" 
>>>>>                         > 
>>>>>       </cxfbc:provider>
>>>>>
>>>>> </beans> 
>>>>>
>>>>>
>>>>>   
>>>>>       
>>>>     
>>>
>>>   
>> 
>> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/servicemix-cxf-bc---soapVersion-attribute-tf4860627s12049.html#a13952439
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Reply via email to