You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Markus Schulz <ma...@m-schulz.net> on 2007/08/23 08:50:07 UTC
IllegalArgumentException for BigInteger
I have a WSDL file from a customer and generated Java code from it with
WSDL2Java.
There are some classes generated that contain a value of type
BigInteger. One of them is described in the WSDL-file as follows:
<xsd:complexType name="LifecycleStateDTO">
<xsd:sequence>
<xsd:element name="stateCode" type="xsd:integer"/>
</xsd:sequence>
</xsd:complexType>
So xsd:integer seems to be mapped to BigInteger in java code. When I
call a method, that returns this type (LifecycleStateDTO - directly or
nested), i get an IllegalArgumentException. I traced the communication
with Wireshark and saw that the server returned valid data, so the
exception is thrown on client-side. Does the client not understand the
xsd:integer to BigInteger mapping? Is there any way for me to enforce it?
I tried to change the java code manually, and replaced BigInteger with
int. With these changes made, everything works fine. But I don't like
that solution, since the webservice interface (and so the WSDL file) is
changed frequently, so I have to regenerate the java code from time to
time. That would mean a lot of manual BigInteger->int conversion each
time the interface changes. Is there maybe some way of telling WSDL2Java
to generate int from xsd:integer?
I've been searching the web for solutions for hours now... can somebody
please help me with that?
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org