cxf-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Daniel Kulp <dk...@apache.org>
Subject Re: Web Method not returning correctly
Date Thu, 19 Jul 2007 17:51:12 GMT

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
daniel.kulp@iona.com
http://www.dankulp.com/blog

Mime
View raw message