Hello Pedro,
I didn't think it would affect your SOAP message but if you just want
the ArrayHB24ILISTA1Stub class with a definition as the following to be
generated, use the -wrapArrays option (by default Axis "unwraps" the
complexType).
<complexType name="ArrayHB24ILISTA1Stub">
<sequence>
<element name="item" nillable="true" maxOccurs="unbounded"
type="transactionHB24:ArrayHB24ILISTA1" />
</sequence>
</complexType>
Regards,
Dies
Pedro Alves wrote:
I found a way to force the "<item>" to be sent, but I dont think it will
work, since the namespace is different. Adding an element "test", it
forces axis to build the Stub object:
<complexType name="ArrayHB24ILISTA1Stub">
<sequence>
<element name="item" nillable="true" maxOccurs="unbounded"
type="transactionHB24:ArrayHB24ILISTA1" />
<element name="TEST" minOccurs="0" type="string"/>
</sequence>
</complexType>
<complexType name="RequestBeanHB24">
<sequence>
<element name="cancelTrxId" nillable="true" type="string" />
<element name="LISTA1" nillable="true"
type="transactionHB24:ArrayHB24ILISTA1Stub" />
</sequence>
</complexType>
, and the output is:
<LISTA1 xsi:type="ns2:ArrayHB24ILISTA1Stub">
<item xsi:type="ns2:ArrayHB24ILISTA1">
<ACCAO xsi:type="xsd:string" xsi:nil="true"/>
<CTCANAL_L xsi:type="xsd:string" xsi:nil="true"/>
</item>
<item xsi:type="ns2:ArrayHB24ILISTA1">
<ACCAO xsi:type="xsd:string" xsi:nil="true"/>
<CTCANAL_L xsi:type="xsd:string" xsi:nil="true"/>
</item>
<TEST xsi:type="xsd:string" xsi:nil="true"/>
</LISTA1>
However, I'm almost sure that the server will complain about that unknown
ArrayHB24ILISTA1Stub (since I changed the wsdl but only at client side).
Will test it and say if it works
[]
Pedro
On Thu, Mar 09, 2006 at 06:52:26PM +0000, Pedro Alves wrote:
Hum... I dunno about that. But that is the output I'm getting. Apparently
axis is beeing smart and realizing that I dont need 2 objects for that --
and he is right, he doesnt even creates a ArrayHB24ILISTA1Stub.java -- but
I really need him to be dumb :)
On Thu, Mar 09, 2006 at 12:54:23PM -0600, Kiran Kumar wrote:
Hi,
In the generated output, <LISTA1> element is pointing to "ArrayHB24ILISTA1", it is supposed to point "ArrayHB24ILISTA1Stub".
<LISTA1 xsi:type="ns2:ArrayHB24ILISTA1"> =====> supposed to be "ArrayHB24ILISTA1Stub"..
<ACCAO xsi:type="xsd:string" xsi:nil="true"/>
<CTCANAL_L xsi:type="xsd:string" xsi:nil="true"/>
</LISTA1>
Kiran
On Wed, Mar 08, 2006 at 09:39:07AM -0600, Kiran Kumar wrote:
Hi,
As per the definition of type'ArrayHB24ILISTA1' is not 'Array'.. You have to
define array of your complex type (ArrayHB24ILISTA1).. It would be something
like this :
<xsd:complexType name="LISTA1Type">
<xsd:sequence>
<xsd:element name="item" type="transactionHB24:ArrayHB24ILISTA1"
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="LISTA1" type="LISTA1Type" />
Name of the your complex type (ArrayHB24ILISTA1) is confusing..Its not an
array.. its just a complex type.
Reopening this subject:
I followed your suggestion. My wsdl now reads:
<complexType name="ArrayHB24ILISTA1Stub">
<sequence>
<element name="item" nillable="true" maxOccurs="unbounded"
type="transactionHB24:ArrayHB24ILISTA1" />
</sequence>
</complexType>
<complexType name="RequestBeanHB24">
<sequence>
<element name="cancelTrxId" nillable="true" type="string" />
<element name="LISTA1" nillable="true"
type="transactionHB24:ArrayHB24ILISTA1Stub" />
</sequence>
</complexType>
But the output is still:
<arg0 xmlns:ns2="java:com.altitude.tp.transactions.transactionHB24"
xsi:type="ns2:RequestBeanHB24">
<cancelTrxId xsi:type="xsd:string" xsi:nil="true"/>
<LISTA1 xsi:type="ns2:ArrayHB24ILISTA1">
<ACCAO xsi:type="xsd:string" xsi:nil="true"/>
<CTCANAL_L xsi:type="xsd:string" xsi:nil="true"/>
</LISTA1>
<LISTA1 xsi:type="ns2:ArrayHB24ILISTA1">
<ACCAO xsi:type="xsd:string" xsi:nil="true"/>
<CTCANAL_L xsi:type="xsd:string" xsi:nil="true"/>
</LISTA1>
<codAmbiente xsi:type="xsd:string" xsi:nil="true"/>
<autorizacoes xsi:type="xsd:string" xsi:nil="true"/>
</arg0>
The other side (a desperately outdated weblogic...) requires a form like:
<arg0 xmlns:ns2="java:com.altitude.tp.transactions.transactionHB24"
xsi:type="ns2:RequestBeanHB24">
<cancelTrxId xsi:type="xsd:string" xsi:nil="true"/>
<LISTA1 xsi:type="ns2:ArrayHB24ILISTA1[2]">
<item xsi:type="ns2:ArrayHB24ILISTA1">
<ACCAO xsi:type="xsd:string" xsi:nil="true"/>
<CTCANAL_L xsi:type="xsd:string" xsi:nil="true"/>
</item>
<item xsi:type="ns2:ArrayHB24ILISTA1">
<ACCAO xsi:type="xsd:string" xsi:nil="true"/>
<CTCANAL_L xsi:type="xsd:string" xsi:nil="true"/>
</item>
</LISTA1>
<codAmbiente xsi:type="xsd:string" xsi:nil="true"/>
<autorizacoes xsi:type="xsd:string" xsi:nil="true"/>
</arg0>
How can I force axis to send the request in this form? (even if I have to
change the wsdl).
Thanks