On Wednesday 19 January 2011 9:37:18 am 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) ??

As you said, that works.   If you DON'T want to use the wsdl, you should also 
be able to do:



QName portQName = new QName("urn:ihe:iti:xds-b:2007",
   "DocumentRepository_Port"); 

service.addPort(portQName, SOAPBinding.SOAP12HTTP_MTOM_BINDING ,
                    "http://address.to.service);

return Service.getPort(portQName, DocumentRepositoryPortType.class);


Dan



> 
> 
> 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/x
> > ds/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-wsse
> > curity-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-o
> >>> n-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.
> >> 
> >> ------------------------
> >> 
> >> 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
> > 
> > ------------------------
> > 
> > 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

-- 
Daniel Kulp
[email protected]
http://dankulp.com/blog

Reply via email to