I have an axis client Written in Java. The client makes an axis call and reveives a soap envelope containing a signature. This signature element contains a reference element with empty URI.
<Reference URI="" ….
On this call, the deserializer failes to deserialize this reference element giving this error:
org.apache.axis.types.URI$MalformedURIException: Cannot initialize URI with empty parameters.
but according to spec empty URI should be allowed:
A URI reference that does not contain a URI is a reference to the
current document. In other words, an empty URI reference within a document is interpreted as a reference to the start of that document, and a reference containing only a fragment identifier is a reference
to the identified fragment of that document. Traversal of such a
reference should not result in an additional retrieval action.
However, if the URI reference occurs in a context that is always
intended to result in a new request, as in the case of HTML's FORM
element, then an empty URI reference represents the base URI of the
current document and should be replaced by that URI when transformed
into a request.
When I browsed through axis API for class URI : org.apache.axis.types.URI, I see that empty URI is not allowed and throws the MalformedURIException. It seems that axis does not follow the spec. Can anyone let me know if there is anything I can do to get rid of this exception? Is there a patch I can use?
PS> I checked and apparenty axis2 also has the same limitation. org.apache.axis2.databinding.types.URI