SOAPFaultException: IllegalArgumentException: Decoding tip

As part of my ongoing work on the SOA and SCA (Society of Confused Architects) bandwagon, I have a new not-so-easy error to explain and share with you.

Here is how the error will reads from the client side, when using Oracle Web Services tech Stack on the 10gR3 releases:
javax.xml.rpc.soap.SOAPFaultException: Caught exception while handling request:
deserialization error: java.lang.IllegalArgumentException

The SOAP response will look something like that:

1 <?xml version = '1.0' encoding = 'UTF-8'?>
2 <env:Envelope xmlns:env="">
3 <env:Body>
4 <env:Fault>
5 <faultcode>env:Client</faultcode>
6 <faultstring>Caught exception while handling request: deserialization
7 error: java.lang.IllegalArgumentException</faultstring>
8 </env:Fault>
9 </env:Body>
10 </env:Envelope>

In my case, the error was just because I was having an invalid value
for some XML Schema type - the incomming value was not in the set
defined in the schema.

1 <xs:schema xmlns:xs=""
2 xmlns:tns=""
3 targetNamespace=""
4 elementFormDefault="qualified"
5 attributeFormDefault="unqualified">
6 ...
7 <xs:simpleType name="TitleType">
8 <xs:restriction base="xs:string">
9 <xs:enumeration value="Company"/>
10 <xs:enumeration value="Mr."/>
11 <xs:enumeration value="Ms."/>
12 </xs:restriction>
13 </xs:simpleType>
14 <xs:element name="title" type="tns:TitleType"/>
15 ...
16 </xs:schema>

Hope it can help some of you out there, getting to the bottom
of your interoperability issues faster.



Popular posts from this blog

Changing the version of JDK used by JDeveloper

Connection reset from a WCF Web Service

Test locally first, then deploy to the cloud.