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.
