The way I read the 2.3.1 code
(http://cvs.apache.org/viewcvs.cgi/xml-soap/java/src/org/apache/soap/uti
l/net/HTTPUtils.java?rev=1.26&content-type=text/vnd.viewcvs-markup) is
that the java.net.UnknownHostException will propagate out of buildSocket
and be caught in post, which then throws the IllegalArgumentException.
SOAPHTTPConnection#send will in turn catch that exception and throw a
SOAPException chained back to the IAE.

Are you saying that the stack trace for the
java.net.UnknownHostException is being printed from code other than your
own?  Or did you add that to get to the bottom of the problem, and you
are complaining that by the time your code gets an exception, the actual
root cause (the UHE) has been wiped away?  If the latter is true, the
best advice I have is to use a nightly build instead of 2.3.1, as the
current code base does not throw and IAE from post.  Instead, it throws
a SOAPException that is chained to the UHE that caused the problem in
the first place.

Scott Nichol

----- Original Message -----
From: "Ehrlich, Dave" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, December 19, 2002 3:24 PM
Subject: UnknownHostException not being caught


>
> I am sending a SOAP message using:
>
> message.send( url, SOAPActionURI, env );
>
>  where URL is the URL of the web service, SOAPActionURI is the web
service
> and webmethod to be executed, and env is the SOAP Envelope.
>
> For testing purposes, I have changed the hostname in the URL to an
invalid
> hostname.  The message.send method throws a SOAPException and this is
being
> correctly handled and caught in my code.  Before the catch logic for
the
> SOAPException is processed there is an UnknownHostException that is
being
> thrown in the chain, but is not being caught.
>
> Here is the error listing.  Modules DCFController, UOWBrokerBase, and
> SLMReader of package dcf.frame are within my application.
>
> java.net.UnknownHostException: w2bzbt4407
>         at java.net.InetAddress.getAllByName0(Unknown Source)
>         at java.net.InetAddress.getAllByName0(Unknown Source)
>         at java.net.InetAddress.getByName(Unknown Source)
>         at java.net.Socket.<init>(Unknown Source)
>         at
> org.apache.soap.util.net.HTTPUtils.buildSocket(HTTPUtils.java:126)
>         at org.apache.soap.util.net.HTTPUtils.post(HTTPUtils.java:208)
>         at
> org.apache.soap.transport.http.SOAPHTTPConnection.send(SOAPHTTPConnec
> tion.java:282)
>         at org.apache.soap.messaging.Message.send(Message.java:123)
>         at dcf.frame.SLMReader.DownloadTables(SLMReader.java:139)
>         at dcf.frame.SLMReader.doLoad(SLMReader.java:47)
>         at
dcf.frame.UOWBrokerBase.notifyDCFReaders(UOWBrokerBase.java:181)
>         at
dcf.frame.DCFController.processFeeds(DCFController.java:207)
>         at dcf.frame.DCFController.main(DCFController.java:57)
> DCF Exception: SLM00006 - Error sending/receiving soap message:
> [SOAPException:
> faultCode=SOAP-ENV:Client; msg=Error opening socket: w2bzbt4407;
> targetException
> =java.lang.IllegalArgumentException: Error opening socket: w2bzbt4407]
>
> The DCF Exception at the bottom is an application exception that all
> exceptions are converted to.  In this case it is correctly catching
the SOAP
> Exception, wrapping it with some user information and displaying the
error.
>
> Before the SOAPException is caught, there is an UnknowHostException
that is
> being thrown.  A review of the documentation shows that this message
is
> first thrown from java.net.InetAddress.getByName.  I would think that
this
> exception would be passed back up the chain.  However, the way the
output
> reads it looks like there is someplace where it is not being handled
at or
> prior to Message.send.  Message.send sees that there is an error and
throws
> a SOAPException.  This SOAPException is being caught by my module
SLMReader,
> converted to a DCFException, passed up to the DCFController and
correctly
> displayed and handled.
>
> I have a general catch statement as well as a specific catch statement
for
> UnknowHostException.  The fact that Message.send is throwing a
SOAPException
> (which is being correctly caught) leads me to believe that somewhere
between
> Message.send and InetAddress.getAllByName the UnknownHostException is
being
> thrown and not handled.
>
> I am using apache soap 2.3.1.
>
> Can anyone tell me what is going on and how the UnknownHostException
can be
> caught and handled.
>
> Thanks,
>
> Dave
>
>
>
> --
> To unsubscribe, e-mail:
<mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail:
<mailto:[EMAIL PROTECTED]>
>
>


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to