Chris,
Take a look here. You might find the
reason...(http://cvs.apache.org/viewcvs.cgi/xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaStubWriter.java)
Thanks,
dims
--- "Peake, Chris" <[EMAIL PROTECTED]> wrote:
> I've done a little more research and I see where the problem is 'starting'.
>
> In the generated code, in the generate *Stub.java source file.
> The 'method' call uses the 'type' name for the parameter name to the method and then
>the QName
> gets generated with same name.
> // as in below, 'Pattern' is the name used for the
> public localhost.ValueStressTypes.ValueNeugentConsultResult
> consult(localhost.ValueStressTypes.Pattern[] pattern) throws
>java.rmi.RemoteException {
> apache.axis.client.Call _call = createCall();
>
> // I change to 'consultData' for the QName and now data is correct on wire
>
> // Soap envelope appears as I expect it to.
> _call.addParameter(new javax.xml.namespace.QName("urn:ValueStressTypes.localhost",
> "consultData"), new javax.xml.namespace.QName("urn:ValueStressTypes.localhost",
>"Pattern"),
> localhost.ValueStressTypes.Pattern[].class, javax.xml.rpc.ParameterMode.IN);
>
> // this is the default generated one. It uses the 'type' name for the parm QName.
> //generated one _call.addParameter(new
> javax.xml.namespace.QName("urn:ValueStressTypes.localhost", "Pattern"), new
> javax.xml.namespace.QName("urn:ValueStressTypes.localhost", "Pattern"),
> localhost.ValueStressTypes.Pattern[].class, javax.xml.rpc.ParameterMode.IN)
>
> This has changed in not too distant past.
> I'm not sure exactly when though.
> .
> .
> fyi,
>
> chris
>
>
>
> -----Original Message-----
> From: Peake, Chris
> Sent: Monday, October 28, 2002 11:02 AM
> To: [EMAIL PROTECTED]
> Subject: WSDL2Java sending incorrect data.
>
>
>
> // posted this to user group with no response.
> // time is short for us to release is reason posting directly to you guys.
>
> Now using RC1 Axis.
> Below describes the problem.
> This has changed post beta2.
> .NET still works (which is usually not the case)
> // we generate the WSDL ourselves
>
> // this is the WSDL (or a portion of it)
> // Notice that the 'sequence' element name is 'consultData' and the TYPE is
>'Pattern'.
> // The generated Java code 'used' to produce an element for the 'consult' method
>whose parameter
> WAS <consultData>
> // .NET is 'still' doing this as well.
> // Which used to work for generated Axis Java clients
> // and still works for .NET clients.
> // But now, Axis generated Java clients are producing soap messages using the 'type'
> (i.e.
> Pattern) for the element name instead of 'consultData'
>
> // like it should be doing.
> // why was this changed?
> // do you consider this correct?
> //examples follow
>
> // WSDL - no changes in this.
> <?xml version="1.0" encoding="UTF-8" ?>
> - <definitions name="ValueStress" targetNamespace="
>http://localhost:8080/WSB/soap/ValueStress"
> xmlns=" http://schemas.xmlsoap.org/wsdl/" xmlns:intf="
> http://localhost:8080/WSB/soap/ValueStress" xmlns:soap="
>http://schemas.xmlsoap.org/wsdl/soap/"
> xmlns:types="urn:ValueStressTypes.localhost" xmlns:xsd="
>http://www.w3.org/2001/XMLSchema">
>
> - <types>
> - <xsd:schema attributeFormDefault="qualified" elementFormDefault="qualified"
> targetNamespace="urn:ValueStressTypes.localhost">
>
> - <xsd:element name="consult">
> - <xsd:complexType>
> - <xsd:sequence>
> <xsd:element maxOccurs="unbounded" minOccurs="1" name="consultData"
>type="types:Pattern" />
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> - <xsd:complexType name="Pattern">
> - <xsd:sequence>
> <xsd:element maxOccurs="1" minOccurs="0" name="myOID" type="xsd:string" />
> <xsd:element maxOccurs="unbounded" minOccurs="1" name="fields"
>type="types:PatternField" />
> </xsd:sequence>
> </xsd:complexType>
> - <xsd:complexType name="PatternField">
> - <xsd:sequence>
>
> // from RC1 we 'NOW' get the following. Notice the element name is NOW 'Pattern'
>which is the
> TYPE itself.
> // this is SOAP message sent from generated code from beta 2.
> // notice the the method name is <consult> element. This is good.
> // Also, notice the 'data' element is <consultData>. This is good to.
> // this was the 'name' attribute on the WSDL for this element.
> // But this changed in later Axis code.
>
> t message form to: FORM_SOAPENVELOPE (currentMessage is now <SOAP-ENV:Envelope x
> mlns:SOAP-ENV=" http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd=" http://www.
> w3.org/2001/XMLSchema" xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance">
> <SOAP-ENV:Body>
> <consult xmlns=" http://localhost:8080/WSB/soap/ValueStress">
> <ns1:consultData xmlns:ns1="urn:ValueStressTypes.localhost">
> <ns1:fields>
> <ns1:value>
> <ns1:doubleValue xsi:nil="true"/>
> <ns1:stringValue>
> <ns1:value>record1</ns1:value>
>
>
> // below is the NEW soap messag being sent by the Axis generated java clients
> // notice the element name is now <Pattern> instead of <consultData> even though the
>WSDL
> definition is the same.
> // this is causing our failure.
>
> 343313 [HttpProcessor[8080][5]] DEBUG org.apache.axis.SOAPPart -
> setCurrentForm(<soapenv:Envelope xmlns:soapenv="
>http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:xsd=" http://www.w3.org/2001/XMLSchema" xmlns:xsi="
> http://www.w3.org/2001/XMLSchema-instance">
>
> <soapenv:Body>
> <consult xmlns="urn:ValueStressTypes.localhost">
> <Pattern>
> <fields>
> <label>label</label>
> <value>
> <stringValue>
> <value>record1</value>
> </stringValue>
> </value>
> </fields>
>
> Thanks,
> chris
>
>
>
=====
Davanum Srinivas - http://xml.apache.org/~dims/
__________________________________________________
Do you Yahoo!?
Y! Web Hosting - Let the expert host your web site
http://webhosting.yahoo.com/