Menu

#43 Reqest for more error info from SOAP call error

open
Steve
API (125)
2
2009-06-04
2009-04-09
No

For a specific SOAP call error I have, the stream returned from WSClient#post is null, instead of (possibly) more info returned from the call.
Could be that I have things confused, and this is as designed, but here's what I know:

To get my specific error: pass an extension that contains a URL with an ampersand in it to ExtensionManager#registerExtension. (I think maybe I or vijava needs to HTML-encode that ampersand).

Issue seems to be that WSClient:420 ("postCon.getInputStream()") throws an error, but the call in the catch block ("postCon.getErrorStream()") returns null as well -- so null gets returned from post.

This causes WSClient to pass null to SAXReader#read at WSClient.java:170.

Passing null there causes a misleading error to be thrown from SAXReader#read (MalformedURLException) -- even though there's really no URL at that point. Note that the MalformedURLException doesn't have to do with the URL in my extension -- it's just that the SOAP response reader creates an URL for some reason (I think somewhere in dom4j --- sorry, I've forgotten from this morning). Could be that there really is no error stream -- but in that event, might be good to get some other error.

I'm using 2.0 beta 2 update 2.

Anywho, this is a low priority issue, just thought it would be good to know. Thanks!

Discussion

  • Steve

    Steve - 2009-04-18

    Thanks a lot for reporting this and great analysis, Brian!

    When the & is included in the request without being encoded first, it fails the server side xml parsing, therefore even the error stream is null. This is a very rare scenario. When it happens, a RemoteException is thrown. I agree it should be more specific to the nature of this error.

    I agree it's a low priority issue, and will look into it later.

     
  • Steve

    Steve - 2009-06-04
    • priority: 5 --> 2