Oh. shoot. I gave the wrong instructions... :-( Use the java2wsdl tool with the -s option. Not the wsdl2java tool. Sorry about that. (you can add the -classdir option if you want as well to have the generated classes compiled)
Looking at the soap message, what I described is correct. The soap message is not valid according to the schema in the wsdl. Dan On Thursday 19 July 2007 14:15, Clough, Samuel (USPC.PRG.Atlanta) wrote: > I went ahead and ran wsdl2java against the current wsdl that Jaxb is > generating. Should I go ahead and just use those replacement classes? > > -----Original Message----- > From: Daniel Kulp [mailto:[EMAIL PROTECTED] > Sent: Thursday, July 19, 2007 1:51 PM > To: cxf-user@incubator.apache.org > Cc: Clough, Samuel (USPC.PRG.Atlanta) > Subject: Re: Web Method not returning correctly > > > Samuel, > > Could you send the soap message? > > I'm willing to bet this is related to CXF-802 and CXF-655 which I'm > still > battling with. My expectation is that the "completedLogId" element > in the response soap message is ending up qualified instead of > unqualified like the schema states it should be. .NET is probably > just looking for the unqualified version. (as it should) > > The main workaround for most of the "Java First" cases is to run > wsdl2java with the -s flag to generate the wrapper types. The > runtime should then pick up those wrappers and use those which should > make the messages correct. > > Dan > > On Thursday 19 July 2007 13:37, Clough, Samuel (USPC.PRG.Atlanta) wrote: > > Well, I've sniffed this with tcpmon and executed it via soapui. In > > both cases, I'm seeing the correct value come back in the response, > > but for some reason .NET is not reading it. Do I need to set some > > sort of annotation to ensure .NET compatibility? I would think > > things are fine. I see literal in the wsdl and the server is getting > > the request from .NET correctly, .NET is just not parsing the > > response correctly apparently. > > > > _____ > > > > From: Clough, Samuel (USPC.PRG.Atlanta) > > Sent: Thursday, July 19, 2007 11:54 AM > > To: cxf-user@incubator.apache.org > > Subject: Web Method not returning correctly > > > > > > I'm trying to track down a problem. I have a method that takes a > > long and boolean parameter and then returns a long. The method was > > working just fine when I was using Aegis binding with the > > ServerFactoryBean. For some reason, Aegis was generating invalid > > wsdl (another thread I posted yesterday) related to other methods in > > the class and since I've been unable to get Aegis to create good > > wsdl for the class, I just put some basic annotations on the class > > and hosted it using JaxB via the JaxWsServerFactoryBean. The wsdl > > is good and the .NET clients have no problems consuming it. > > However, the method in question returns the correct long value on > > the Java server, but the .NET client now always sees zero as the > > return value when it calls the service. It worked properly before > > using Aegis binding and I know the long value is still being > > populated correctly from the logs. I'm assuming this is some sort > > of serialization issue, but is there an annotation I'm missing? > > Where should I be looking for the problem? The signature for the > > method in question is: > > @WebMethod > > > > public @WebResult(name="completedLogId") long > > finishImport(@WebParam(name="logId") long logId, > > @WebParam(name="rejectsOccurred")boolean rejectsOccurred) throws > > Exception > > > > > > The full wsdl for the service is: > > <?xml version="1.0" encoding="utf-8"?><wsdl:definitions > > xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" > > xmlns:ns1="http://services.afp.prg.com/" > > xmlns:ns2="http://schemas.xmlsoap.org/soap/http" > > xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" > > xmlns:xsd="http://www.w3.org/2001/XMLSchema" > > name="AFPManagerServiceService" > > targetNamespace="http://services.afp.prg.com/"> > > <wsdl:types> > > <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" > > xmlns="http://services.afp.prg.com/" > > attributeFormDefault="unqualified" elementFormDefault="unqualified" > > targetNamespace="http://services.afp.prg.com/"> > > <xs:complexType name="afpImportInfo"> > > <xs:sequence> > > <xs:element minOccurs="0" name="description" type="xs:string"/> > > <xs:element name="id" type="xs:int"/> > > </xs:sequence> > > </xs:complexType> > > <xs:element name="getDataWarnings" type="getDataWarnings"/> > > <xs:complexType name="getDataWarnings"> > > <xs:sequence> > > <xs:element minOccurs="0" name="arg0" type="xs:string"/> > > <xs:element name="arg1" type="xs:long"/> > > <xs:element name="arg2" type="xs:boolean"/> > > </xs:sequence> > > > > </xs:complexType> > > <xs:element name="getDataWarningsResponse" > > type="getDataWarningsResponse"/> > > <xs:complexType name="getDataWarningsResponse"> > > <xs:sequence> > > <xs:element maxOccurs="unbounded" minOccurs="0" name="return" > > type="xs:string"/> > > </xs:sequence> > > </xs:complexType> > > <xs:element name="finishImport" type="finishImport"/> > > <xs:complexType name="finishImport"> > > <xs:sequence> > > <xs:element name="logId" type="xs:long"/> > > <xs:element name="rejectsOccurred" type="xs:boolean"/> > > </xs:sequence> > > </xs:complexType> > > <xs:element name="finishImportResponse" > > type="finishImportResponse"/> <xs:complexType > > name="finishImportResponse"> > > <xs:sequence> > > > > <xs:element name="completedLogId" type="xs:long"/> > > </xs:sequence> > > </xs:complexType> > > <xs:element name="getImports" type="getImports"/> > > <xs:complexType name="getImports"> > > <xs:sequence> > > <xs:element minOccurs="0" name="arg0" type="xs:string"/> > > </xs:sequence> > > </xs:complexType> > > <xs:element name="getImportsResponse" type="getImportsResponse"/> > > <xs:complexType name="getImportsResponse"> > > <xs:sequence> > > <xs:element maxOccurs="unbounded" minOccurs="0" name="return" > > type="afpImportInfo"/> > > </xs:sequence> > > </xs:complexType> > > </xs:schema> > > </wsdl:types> > > > > <wsdl:message name="finishImport"> > > <wsdl:part element="ns1:finishImport" name="parameters"> > > </wsdl:part> > > </wsdl:message> > > <wsdl:message name="getDataWarningsResponse"> > > <wsdl:part element="ns1:getDataWarningsResponse" > > name="parameters"> </wsdl:part> > > </wsdl:message> > > <wsdl:message name="finishImportResponse"> > > > > <wsdl:part element="ns1:finishImportResponse" name="parameters"> > > </wsdl:part> > > </wsdl:message> > > <wsdl:message name="getImportsResponse"> > > <wsdl:part element="ns1:getImportsResponse" name="parameters"> > > </wsdl:part> > > </wsdl:message> > > <wsdl:message name="getDataWarnings"> > > <wsdl:part element="ns1:getDataWarnings" name="parameters"> > > > > </wsdl:part> > > </wsdl:message> > > <wsdl:message name="getImports"> > > <wsdl:part element="ns1:getImports" name="parameters"> > > </wsdl:part> > > </wsdl:message> > > <wsdl:portType name="AFPManagerService"> > > <wsdl:operation name="getDataWarnings"> > > <wsdl:input message="ns1:getDataWarnings" > > name="getDataWarnings"> > > > > </wsdl:input> > > <wsdl:output message="ns1:getDataWarningsResponse" > > name="getDataWarningsResponse"> > > </wsdl:output> > > </wsdl:operation> > > <wsdl:operation name="finishImport"> > > <wsdl:input message="ns1:finishImport" name="finishImport"> > > </wsdl:input> > > <wsdl:output message="ns1:finishImportResponse" > > name="finishImportResponse"> > > </wsdl:output> > > > > </wsdl:operation> > > <wsdl:operation name="getImports"> > > <wsdl:input message="ns1:getImports" name="getImports"> > > </wsdl:input> > > <wsdl:output message="ns1:getImportsResponse" > > name="getImportsResponse"> > > </wsdl:output> > > </wsdl:operation> > > </wsdl:portType> > > <wsdl:binding name="AFPManagerServiceServiceSoapBinding" > > type="ns1:AFPManagerService"> > > > > <soap:binding style="document" > > transport="http://schemas.xmlsoap.org/soap/http"/> > > <wsdl:operation name="getDataWarnings"> > > <soap:operation soapAction="" style="document"/> > > <wsdl:input name="getDataWarnings"> > > <soap:body use="literal"/> > > </wsdl:input> > > <wsdl:output name="getDataWarningsResponse"> > > <soap:body use="literal"/> > > </wsdl:output> > > > > </wsdl:operation> > > <wsdl:operation name="finishImport"> > > <soap:operation soapAction="" style="document"/> > > <wsdl:input name="finishImport"> > > <soap:body use="literal"/> > > </wsdl:input> > > <wsdl:output name="finishImportResponse"> > > <soap:body use="literal"/> > > </wsdl:output> > > > > </wsdl:operation> > > <wsdl:operation name="getImports"> > > <soap:operation soapAction="" style="document"/> > > <wsdl:input name="getImports"> > > <soap:body use="literal"/> > > </wsdl:input> > > <wsdl:output name="getImportsResponse"> > > <soap:body use="literal"/> > > </wsdl:output> > > > > </wsdl:operation> > > </wsdl:binding> > > <wsdl:service name="AFPManagerServiceService"> > > <wsdl:port binding="ns1:AFPManagerServiceServiceSoapBinding" > > name="AFPManagerServicePort"> > > <soap:address > > location="http://patlhapdev01.prg.us.ml.com:8192/afpmanager/2007/07/ > >AF PM anagerService"/> > > </wsdl:port> > > </wsdl:service> > > </wsdl:definitions> > > -------------------------------------------------------- > > > > Princeton Retirement Group, Inc - Important Terms > > This E-mail is not intended for distribution to, or use by, any > > person or entity in any location where such distribution or use > > would be contrary to law or regulation, or which would subject > > Princeton Retirement Group, Inc. or any affiliate to any > > registration requirement within such location. This E-mail may > > contain privileged or confidential information or may otherwise be > > protected by work product immunity or other legal rules. No > > confidentiality or privilege is waived or lost by any > > mistransmission. Access, copying or re-use of information by > > non-intended or non-authorized recipients is prohibited. If you are > > not an intended recipient of this E-mail, please notify the sender, > > delete it and do not read, act upon, print, disclose, copy, retain > > or redistribute any portion of this E-mail. The transmission and > > content of this E-mail cannot be guaranteed to be secure or > > error-free. Therefore, we cannot represent that the information in > > this E-mail is complete, accurate, uncorrupted, timely or free of > > viruses, and Princeton Retirement Group, Inc. cannot accept any > > liability for E-mails that have been altered in the course of > > delivery. Princeton Retirement Group, Inc. reserves the right to > > monitor, review and retain all electronic communications, including > > E-mail, traveling through its networks and systems (subject to and > > in accordance with local laws). If any of your details are incorrect > > or if you no longer wish to receive mailings such as this by E-mail > > please contact the sender by reply E-mail. > > > > -------------------------------------------------------- -- J. Daniel Kulp Principal Engineer IONA P: 781-902-8727 C: 508-380-7194 [EMAIL PROTECTED] http://www.dankulp.com/blog