You mean your request soap message already has < param> yourParam< /param> element? and it still doesn't work ? (obviously I make a mistake in my prevoious mail, I mismactch the response and request, sorry for it)
On Nov 27, 2007 8:06 PM, Florent <[EMAIL PROTECTED]> wrote: > > There is a problem when i post the "param" tag : it does not appear in the > forum post. I edited my previous message and put some spaces : > > <tns:getProtoDTO> > < param>myparam</ param> > </tns:getProtoDTO> > > Sorry, i didn't notice it in my first post. I think the misunderstanding > came from that... > > Best Regards, > Florent > > > > Florent wrote: > > > > Ok, i think i understand why you said my soap enveloppe in incorrect. > > > > Here is the one i'm using (in my first post, i have to admit it wasn't > > correct) : > > > > <?xml version=\"1.0\" encoding=\"UTF-8\"?> > > <env:Envelope xmlns:env="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.sopra.com\"> > > <env:Body> > > <tns:getProtoDTO> > > < param>myparam</ param> > > > </tns:getProtoDTO> > > </env:Body> > > </env:Envelope> > > > > > > > > Florent wrote: > >> > >> > >> this : > >> > >> Standalone client <--> SOAP message <--> Servicemix cxf bc consumer<---> > >> JBI message <--->Servicemix Cxf bc provider <---> soap message > >> <-->Websphere > >> Application Server > >> > >> is exactly what i want to be done (and what i'm trying to do) :) > >> > >> According to your reply, i should use the following soap message : > >> > >> <?xml version=\"1.0\" encoding=\"UTF-8\"?> > >> <env:Envelope xmlns:env="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.sopra.com\"> > >> <env:Body> > >> <tns:getProtoDTO> > >> <date>2007-11-27T10:04:16.347Z</date> > >> <dble>0.0</dble> > >> <integ>1</integ> > >> <liste> > >> <string>s01</string><string>s02</string><string>s03</string> > >> </liste> > >> </tns:getProtoDTO> > >> </env:Body> > >> </env:Envelope> > >> > >> But, according to my wsdl, this is the response soap message, not the > >> request one ! > >> > >> Operation : > >> <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> > >> > >> PortType : > >> <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> > >> > >> > >> Input / request : > >> <wsdl:message name="getProtoDTORequest"> > >> <wsdl:part element="intf:getProtoDTO" name="parameters"/> > >> </wsdl:message> > >> > >> Element : > >> <element name="getProtoDTO"> > >> <complexType> > >> <sequence> > >> <element name="param" nillable="true" type="xsd:string"/> > >> </sequence> > >> </complexType> > >> </element> > >> > >> Output / response : > >> <wsdl:message name="getProtoDTOResponse"> > >> <wsdl:part element="intf:getProtoDTOResponse" name="parameters"/> > >> </wsdl:message> > >> > >> Element : > >> <element name="getProtoDTOResponse"> > >> <complexType> > >> <sequence> > >> <element name="getProtoDTOReturn" nillable="true" > >> type="tns2:ProtoDTO"/> > >> </sequence> > >> </complexType> > >> </element> > >> > >> So, the output is the ProtoDTO complex type, and the input is a string. > >> > >> Did i misunderstand something? May be i'm confusing provider/consumer > >> role? > >> > >> > >> > >> > >> Freeman Fang wrote: > >>> > >>> Comments in line > >>> > >>> Florent wrote: > >>>> Morning Freeman, > >>>> > >>>> I tried to modify my SOAP message, but it didn't work : i still get the > >>>> same > >>>> error. > >>>> > >>> What's your new soap message now? > >>>> I also tried to call the web service with this enveloppe and a > >>>> standalone > >>>> client : i got a "wrong parameter error". > >>>> > >>>> I think my SOAP message is correct : i tried to generate it from the > >>>> RAD 7 > >>>> web service test and it was the same one. Plus, my business method has > >>>> one > >>>> parameter (a string) and a complex type as return type. > >>>> > >>> According to the schema from your wsdl, your soap messge > >>> <getProtoDTO>ddd</getProteDTO> is not correct, under <getProtoDTO> > >>> element, there should be element <date> or <dble> or <integ> or <liste> > >>> > >>> Btw, different soap tool kit may generate soap message with little > >>> different, which may cause interoperability problem > >>> > >>>> As i'm totally new to servicemix, so there is probably something i > >>>> don't > >>>> understand. > >>>> > >>>> What i want to do : > >>>> SOAP message <--> Servicemix cxf bc <---> SOAP message <-->Websphere > >>>> Application Server > >>>> > >>>> Considering the debug log, what i think it's going on : > >>>> SOAP message <--> Servicemix cxf bc <---> JBI message <-->Websphere > >>>> Application Server > >>>> > >>> no, what's going on is > >>> > >>> SOAP message <--> Servicemix cxf bc consumer<---> JBI message > >>> <--->Servicemix Cxf bc provider <---> soap message <-->Websphere > >>> Application Server > >>> > >>> So what's reach your websphere application server is soap message, not > >>> jbi message. > >>> May be you need refer to [1] which is similiar as your scenario > >>> [1] > >>> http://svn.apache.org/repos/asf/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/CxfBcProviderConsumerTest.java > >>> > >>>> So, i don't think WAS support JBI message... and that could explain my > >>>> error > >>>> (i no longer think it's a soap verion problem). > >>>> > >>>> http://localhost:9080/PROTOServiceMixWeb/services/ProtoBean = thrid > >>>> party > >>>> web service URL. > >>>> http://localhost:8092/ProtoBeanService/ = servicemix web service. > >>>> > >>>> I only want to call my web service, but i want to call it using a > >>>> servicemix > >>>> URL. > >>>> > >>>> Thanks again for your help, > >>>> Best Regards, > >>>> Florent. > >>>> > >>>> > >>>> > >>>> Freeman Fang wrote: > >>>> > >>>>> Hi Florent, > >>>>> > >>>>> This problem has nothing to do with soap version. > >>>>> > >>>>> The problem is that your hard code soap request message is not > >>>>> correct. > >>>>> > >>>>> According to the schema in wsdl you append, it should be something > >>>>> like > >>>>> > >>>>> <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> > >>>>> <date>your date</date> > >>>>> <dble>your dble</dble> > >>>>> <integ>your integ</integ> > >>>>> <liste>your liste</liste> > >>>>> </tns:getPr > >>>>> otoDTO></env:Body></env:Envelope> > >>>>> > >>>>> You shouldn't use > >>>>> <tns:getProtoDTO>something</tns:getProtoDTO> directly without element > >>>>> tag > >>>>> defined in the schema. > >>>>> For some complex schema, write soap message yourself is not so easy, > >>>>> so we > >>>>> prefer to use some soap tool kit to generate soap message for you, may > >>>>> be > >>>>> you can try to use apache cxf, basically generate code stub from the > >>>>> wsdl, and what you need do is just write client invoke code as normal > >>>>> java > >>>>> operation invoke and cxf will genearate soap message for you. > >>>>> > >>>>> Would you please try it again? > >>>>> > >>>>> Best Regards > >>>>> > >>>>> Freeman > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> 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.16.180.193-1167b1f58b2-4:1 > >>>>>> DEBUG - DeliveryChannelImpl - SendSync > >>>>>> ID:172.16.180.193-1167b1f58b2-4:1 in > >>>>>> DeliveryChannel{servicemix-cxf-bc} > >>>>>> DEBUG - SedaFlow - Called Flow send > >>>>>> DEBUG - DeliveryChannelImpl - Waiting for exchange > >>>>>> ID:172.16.180.193-1167b1f58b2-4:1 (1d7a7b3) to be answered in > >>>>>> DeliveryChannel{servicemix-cxf-bc} from sendSync > >>>>>> DEBUG - SedaQueue - > >>>>>> [EMAIL PROTECTED] dequeued > >>>>>> exchange: InOut[ > >>>>>> id: ID:172.16.180.193-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.16.180.193-1167b1f58b2-4:1 > >>>>>> DEBUG - DeliveryChannelImpl - Send > >>>>>> ID:172.16.180.193-1167b1f58b2-4:1in > >>>>>> DeliveryChannel{servicemix-cxf-bc} > >>>>>> DEBUG - SedaFlow - Called Flow send > >>>>>> DEBUG - SedaQueue - > >>>>>> [EMAIL PROTECTED] dequeued > >>>>>> exchange: InOut[ > >>>>>> id: ID:172.16.180.193-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.16.180.193-1167b1f58b2-4:1(1d7a7b3) in > >>>>>> DeliveryChannel{servicemix-cxf-bc} from > >>>>>> processInboundSynchronousExchange > >>>>>> DEBUG - DeliveryChannelImpl - Notified: > >>>>>> ID:172.16.180.193-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.16.180.193-1167b1f58b2-4:1 > >>>>>> in DeliveryChannel{servicemix-cxf-bc} > >>>>>> DEBUG - SedaFlow - Called Flow send > >>>>>> DEBUG - SedaQueue - > >>>>>> [EMAIL PROTECTED] dequeued > >>>>>> exchange: InOut[ > >>>>>> id: ID:172.16.180.193-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.16.180.193-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#a13969473 > > Sent from the ServiceMix - User mailing list archive at Nabble.com. > >
