Joel, Thanks for sending the WSDL. I can confirm this is a CXF problem. It's related to the out of band header. The HolderOutInterceptor is expecting the out of band header to have a part in the parameter list if it's an in/out header, but by default, it wasn't generated. It's a bug in the HolderOutInterceptor.
Good news: I have a possible workaround. When you run wsdl2java to generate the code, if you add "-exsh true" to the flags, it will change the method signature to have the header as a third parameter. Dan On Monday 12 November 2007, JoCosti wrote: > Thanks Glenn for the quick and developed answer, I do appreciate a lot > since I'm a newbie concerning web services and particularly jax-ws. > > Concerning your remarks : > > 1) I think it's doc/literal, here's a part of binding section > > <wsdl:binding name="StructureServicesSoap" > type="tns:StructureServicesSoap"> > <soap:binding transport="http://schemas.xmlsoap.org/soap/http" > style="document" /> > <wsdl:operation name="GetMailAddress"> > <soap:operation > soapAction="http://anpe.fr/DirectoryServices/GetMailAddress" > style="document" /> > <wsdl:input> > <soap:body use="literal" /> > <soap:header > message="tns:GetMailAddressStructureMailAddressHeader" > part="StructureMailAddressHeader" > use="literal" /> > </wsdl:input> > <wsdl:output> > <soap:body use="literal" /> > <soap:header > message="tns:GetMailAddressStructureMailAddressHeader" > part="StructureMailAddressHeader" > use="literal" /> > </wsdl:output> > </wsdl:operation> > > Can you confirm that it should be possible to consume this web service > with a jax-ws client ? > I have uploaded the complete wsdl (hope you can have a look at it, > it's the first time I'm using the upload facility in this mailing > list). > > For 2) I need to have a look at your work, I'm using maven2 to > generate my web service client, I hope I can use your approach with > maven. > > Finally, here's a the code I have written to call the web service : > > the JUnit test part > > public void testGetMailAddress() throws TechniqueException { > String mailStructure = > getStructureServices().getMailAddress(APPLICATION_NOM, "92053"); > assertEquals("[EMAIL PROTECTED]", mailStructure); > } > > Where getStructureServices() calls the following code (I've just put > the interesting part for clarity sake) > > // I need to access StructureServices in HTTPS, note sure if it's the > right way but that's what I've found with googling ... > Authenticator.setDefault(new AnpeAuthenticator()); > // instanciate the web service client generated by codegen maven > plugin fr.anpe.directoryservices.StructureServices structureServices = > new fr.anpe.directoryservices.StructureServices(); > // get web service port called StructureServicesSoap > structureServicesWebServiceConsumer = > structureServices.getStructureServicesSoap(); > > One last thing, in my wsdl, I have the same name > (StructureServicesSoap) for a port and a binding, is that correct ? > > binding section : > <wsdl:binding name="StructureServicesSoap" > type="tns:StructureServicesSoap"> > <soap:binding transport="http://schemas.xmlsoap.org/soap/http" > style="document" /> > <wsdl:operation name="GetInformation"> > <soap:operation > soapAction="http://anpe.fr/DirectoryServices/GetInformation" > style="document" /> > > port section : > <wsdl:service name="StructureServices"> > <wsdl:port name="StructureServicesSoap" > binding="tns:StructureServicesSoap"> > <soap:address > location="https://annuairews-int.tempo.anpe.fr/directoryservices/struc >tureservices.asmx" /> > </type filter textwsdl:port> > > Regards, > > Joel > > Glen Mazza-2 wrote: > > More detective work is needed here: > > > > 1.) Are you using an rpc/encoded web service, instead of doc/lit or > > rpc/lit (Can you show us a part of the wsdl:binding section, that's > > where you can determine that)--if so, that is not supported by > > jax-ws. For rpc/encoded, you'll need to use the Dispatch object or > > SAAJ instead. > > > > An RPC/encoded sample using Dispatch object is here: > > http://www.jroller.com/gmazza/date/20071102 > > > > 2.) You may wish to use both Metro and CXF when working with SOAP > > clients, because, depending on whether or not it fails on both > > stacks, that helps pinpoint if the problem is (1) with the web > > service stack or (2) your own code. If (2), frequently different > > error messages are given by the two stacks, which can help greatly > > in troubleshooting the problem with the client code. > > > > The "run-client" target of step 5 here[1] shows how this can be > > done. All that is needed is to switch the <path refid.../> between > > "cxf.classpath" and "metro.classpath" to activate the different web > > service stack. Recompiling is not necessary, because JAX-WS > > artifacts are interoperable between web service stacks. > > > > [1] http://www.jroller.com/gmazza/date/20070817 > > > > HTH, > > Glen > > > > Am Montag, den 12.11.2007, 04:44 -0800 schrieb JoCosti: > >> Hi there, > >> > >> I'm using 2.0.2 version to generate the client side of an existing > >> web service. > >> I have already managed to write a client with another framework > >> using jax-rpc technology, I nowwant to migrate to jax-ws with CXF > >> framework > >> > >> When running the client web service, I'm facing the following > >> exception : > > http://www.nabble.com/file/p13706890/structureservices.wsdl > structureservices.wsdl -- J. Daniel Kulp Principal Engineer IONA P: 781-902-8727 C: 508-380-7194 [EMAIL PROTECTED] http://www.dankulp.com/blog
