You were right!! Adding the URL to the WSDL worked ;) Thanks a lot for your quick and accurate advices!!
-----Message d'origine----- De : Freeman Fang [mailto:[email protected]] Envoyé : mercredi 19 janvier 2011 15:44 À : [email protected] Objet : Re: Unable to set Soap Version to 1.2 On 2011-1-19, at 下午10:37, MARTELLI Julien wrote: > Ehehe yep... This should be better ;) > > > Here is how I get the portType: > > // Get the Service => this is maybe here that the Wsdl Location is > missing? > QName serviceQName = new QName("urn:ihe:iti:xds-b:2007", > "DocumentRepository_Service"); > Service service = Service.create(serviceQName); > > // Get the PortType > return Service.getPort(DocumentRepositoryPortType.class); > > > => Maybe we need to create the service with Service.create(URL, > QName) ?? That exactly what I suggest Freeman > > > And here is the very beginning of my client start: > > 19 janv. 2011 15:14:59 > org.apache.cxf.service.factory.ReflectionServiceFactoryBean > buildServiceFromClass > INFO: Creating Service {urn:ihe:iti:xds-b: > 2007}DocumentRepository_Service from class > ihe.iti.xdsb_2007.repository.DocumentRepositoryPortType > 19 janv. 2011 15:15:00 > org.apache.cxf.service.factory.ReflectionServiceFactoryBean > buildServiceFromClass > INFO: Creating Service {urn:ihe:iti:xds-b: > 2007}DocumentRepository_Service from class > ihe.iti.xdsb_2007.repository.DocumentRepositoryPortType > 19 janv. 2011 15:15:01 > org.apache.cxf.interceptor.LoggingOutInterceptor$LoggingCallback > onClose > > > Thanks again > > -----Message d'origine----- > De : Freeman Fang [mailto:[email protected]] > Envoyé : mercredi 19 janvier 2011 15:31 > À : [email protected] > Objet : Re: Unable to set Soap Version to 1.2 > > Hi, > > About the code part, I just want to see how you get portType, so that > I can know if you pass in wsdlLocation > > About the log part, I want to see how the servicemodel is build, so > that I can see if it pick up the wsdl, it should be at very beginning > when you start client. > > Unfortunately, your post miss both what I want to check. :-) > Freeman > > On 2011-1-19, at 下午10:15, MARTELLI Julien wrote: > >> This is how I configure the client: >> >> >> // Below portType is a concrete implementation of >> DocumentRepositoryPortType generated interface >> >> // Setting the service URL >> BindingProvider provider = (BindingProvider) portType; >> provider >> .getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, >> wsUrl); >> // MTOM >> SOAPBinding soapBinding = (SOAPBinding) provider.getBinding(); >> soapBinding.setMTOMEnabled(true); >> // Adding a specific handler >> List<Handler> handlerChain = binding.getHandlerChain(); >> handlerChain.add(new JetonAuthentificationHandler()); >> soapBinding.setHandlerChain(handlerChain); >> // Getting the client >> Client client = ClientProxy.getClient(portType); >> // WS-Adressing >> EndpointImpl endpoint = (EndpointImpl) client.getEndpoint(); >> Bus bus = endpoint.getBus(); >> new WSAddressingFeature().initialize(client, bus); >> // Setting endpointInfo URL >> ConduitSelector conduitSelector = client.getConduitSelector(); >> conduitSelector >> .getEndpoint().getEndpointInfo().setAddress(super.wsUrl); >> // Then we add SSL / TLS configuration => not showed here >> >> >> >> Then we call the service: >> >> // With request as content >> portType.documentRepositoryProvideAndRegisterDocumentSetB(request); >> >> >> On the logs here is what we have (extract of the SOAP Envelope >> beginning only): >> >> INFO: Outbound Message >> --------------------------- >> ID: 1 >> Address: https://172.30.13.61:9043/xds/cxf/DocumentRepository_Service >> Encoding: UTF-8 >> Content-Type: multipart/related; type="application/xop+xml"; >> boundary="uuid:0e72f86e-32e7-4259-a577-45c4482f461a"; >> start="<[email protected] >>> "; start-info="text/xml" >> Headers: {SOAPAction=["urn:ihe:iti:2007:ProvideAndRegisterDocumentSet-b >> "], Accept=[*/*]} >> Payload: >> --uuid:0e72f86e-32e7-4259-a577-45c4482f461a >> Content-Type: application/xop+xml; charset=UTF-8; type="text/xml"; >> Content-Transfer-Encoding: binary >> Content-ID: <[email protected]> >> >> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/ >> envelope/"><soap:Header><Action xmlns="http://www.w3.org/2005/08/addressing >> ">urn:ihe:iti:2007:ProvideAndRegisterDocumentSet-b</ >> Action><MessageID >> xmlns="http://www.w3.org/2005/08/addressing">urn:uuid:c7a3eac7-054d-48a1-a510-c43e6d3df180 >> </MessageID><To >> xmlns="http://www.w3.org/2005/08/addressing">https://172.30.13.61:9043/xds/cxf/DocumentRepository_Service >> </To><ReplyTo >> xmlns="http://www.w3.org/2005/08/addressing"><Address>http://www.w3.org/2005/08/addressing/anonymous >> </Address></ReplyTo><wsse:Security >> xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd >> "><saml2:Assertion xmlns:saml2="urn:oasis:names:tc:SAML: >> 2.0:assertion" ID="be515324-bccf-4e2b-8667-231b6f46f4a6" >> IssueInstant="2009-02-02T00:00:00.000Z" Version="2.0"><saml2:Issuer >> Format="urn:oasis:names:tc:SAML:1.1:nameid- >> format:X509SubjectName">CN=client, OU=Waid, O=Waid, L=Aix, ST=PACA, >> C=FR</saml2:Issuer><ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig# >> "> >> ... >> >> >> >> -----Message d'origine----- >> De : Freeman Fang [mailto:[email protected]] >> Envoyé : mercredi 19 janvier 2011 15:04 >> À : [email protected] >> Objet : Re: Unable to set Soap Version to 1.2 >> >> Hi, >> >> How you configure your client? What the client side looks like, >> ensure >> you already specify wsdlLocation for client side. Seems the client >> side didn't pick up the wsdl to build the service model. >> Could you please paste the log when you run client? >> >> Freeman >> On 2011-1-19, at 下午9:38, MARTELLI Julien wrote: >> >>> Hi, >>> >>> Thanks for this quick answer. >>> >>> I impacted the momdifications you are talking about and there is no >>> difference. The client still generates SOAP 1.1 messages.... >>> >>> >>> -----Message d'origine----- >>> De : Freeman Fang [mailto:[email protected]] >>> Envoyé : mercredi 19 janvier 2011 10:06 >>> À : [email protected] >>> Objet : Re: Unable to set Soap Version to 1.2 >>> >>> Hi, >>> >>> My comment inline >>> On 2011-1-19, at 下午4:54, MARTELLI Julien wrote: >>> >>>> Hi all, >>>> >>>> I am facing a problem with the SOAP message version. >>>> I am really stuck with this problem so any help would be >>>> appreciated. >>>> >>>> OK so here is the context. >>>> >>>> I have a WSDL file from which I generate sources using the >>>> wsdl2java >>>> CXF Maven plugin. >>>> Here is an extract of my WSDL file : >>>> >>>> <definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" >>>> xmlns="http://schemas.xmlsoap.org/wsdl/" >>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema >>>> " >>>> xmlns:ihe="urn:ihe:iti:xds-b:2007" >>>> xmlns:rs="urn:oasis:names:tc:ebxml-regrep:xsd:rs:3.0 >>>> " >>>> targetNamespace="urn:ihe:iti:xds-b:2007" >>>> xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/ >>>> " >>>> xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" >>>> name="DocumentRepository"> >>>> ... >>>> <binding name="DocumentRepository_Binding" >>>> type="ihe:DocumentRepository_PortType"> >>>> <soap12:binding style="document" >>>> transport="http://schemas.xmlsoap.org/soap/http >>>> "/> >>> I think transport here should be >>> transport="http://www.w3.org/2003/05/soap/bindings/HTTP/" >>>> <operation name="DocumentRepository_ProvideAndRegisterDocumentSet- >>>> b"> >>>> <soap12:operation >>>> soapAction="urn:ihe:iti:2007:ProvideAndRegisterDocumentSet-b >>>> "/> >>>> <input> >>>> <soap12:body use="literal"/> >>>> </input> >>>> <output> >>>> <soap12:body use="literal"/> >>>> </output> >>>> </operation> >>>> <operation name="DocumentRepository_RetrieveDocumentSet"> >>>> <soap12:operation soapAction="urn:ihe:iti: >>>> 2007:RetrieveDocumentSet >>>> "/> >>>> <input> >>>> <soap12:body use="literal"/> >>>> </input> >>>> <output> >>>> <soap12:body use="literal"/> >>>> </output> >>>> </operation> >>>> </binding> >>>> ;;; >>>> <service name="DocumentRepository_Service"> >>>> <port name="DocumentRepository_Port_Soap12" >>>> binding="ihe:DocumentRepository_Binding"> >>>> <soap12:address >>>> location="https://servicelocation/DocumentRepository_Service >>>> "/> >>>> </port> >>>> </service> >>>> >>>> >>>> On the generated interface there is no annotation concerning the >>>> Binding : >>>> >>>> @WebService(targetNamespace = "urn:ihe:iti:xds-b:2007", name = >>>> "DocumentRepository_PortType") >>>> @XmlSeeAlso >>>> ({oasis.names.tc.ebxml_regrep.xsd.query._3.ObjectFactory.class, >>>> oasis.names.tc.ebxml_regrep.xsd.rs._3.ObjectFactory.class, >>>> ObjectFactory.class, >>>> oasis.names.tc.ebxml_regrep.xsd.lcm._3.ObjectFactory.class, >>>> oasis.names.tc.ebxml_regrep.xsd.rim._3.ObjectFactory.class}) >>>> public interface DocumentRepositoryPortType { >>>> ... >>>> >>>> >>>> Then I use the generated classes to contact the Web Service and my >>>> client is not configured via Spring but build programmatically. >>>> >>>> The problem is that the generated SOAP message is a SOAP 1.1 >>>> message... >>>> I am not able to find a way to configure my client to use a SOAP >>>> 1.2 >>>> binding, and I tried to add the annotation >>>> @BindingType(javax.xml.ws.soap.SOAPBinding.SOAP12HTTP_MTOM_BINDING) >>>> on the generated interface (as someone suggested to me on this >>>> stackoverflow post : >>> You should add annotation like >>> @javax.xml.ws.BindingType(value = >>> "http://www.w3.org/2003/05/soap/bindings/HTTP/ >>> ") >>> >>> You can get more details from the wsdl_first_soap12 example shipped >>> with kit. >>> >>> Freeman >>>> http://stackoverflow.com/questions/4248098/cxf-how-to-set-soapversion-on-cxf-port-without-spring) >>>> but it didn't change anything... >>>> Maybe it's because I configure my client without Spring and thus >>>> the >>>> default Soap 1.1 version is used... >>>> I really don't know... >>>> >>>> >>>> Do you guys have an idea ? >>>> >>>> Thanks in advance ! >>>> J. >>> >>> >>> -- >>> Freeman Fang >>> >>> ------------------------ >>> >>> FuseSource: http://fusesource.com >>> blog: http://freemanfang.blogspot.com >>> twitter: http://twitter.com/freemanfang >>> Apache Servicemix:http://servicemix.apache.org >>> Apache Cxf: http://cxf.apache.org >>> Apache Karaf: http://karaf.apache.org >>> Apache Felix: http://felix.apache.org >>> >> >> >> -- >> Freeman Fang >> >> ------------------------ >> >> FuseSource: http://fusesource.com >> blog: http://freemanfang.blogspot.com >> twitter: http://twitter.com/freemanfang >> Apache Servicemix:http://servicemix.apache.org >> Apache Cxf: http://cxf.apache.org >> Apache Karaf: http://karaf.apache.org >> Apache Felix: http://felix.apache.org >> > > > -- > Freeman Fang > > ------------------------ > > FuseSource: http://fusesource.com > blog: http://freemanfang.blogspot.com > twitter: http://twitter.com/freemanfang > Apache Servicemix:http://servicemix.apache.org > Apache Cxf: http://cxf.apache.org > Apache Karaf: http://karaf.apache.org > Apache Felix: http://felix.apache.org > -- Freeman Fang ------------------------ FuseSource: http://fusesource.com blog: http://freemanfang.blogspot.com twitter: http://twitter.com/freemanfang Apache Servicemix:http://servicemix.apache.org Apache Cxf: http://cxf.apache.org Apache Karaf: http://karaf.apache.org Apache Felix: http://felix.apache.org
