First, Axis2 One Way _does_ throw exceptions in its current state: http://issues.apache.org/jira/browse/AXIS2-304
Basically I get a socket timeout on long requests. AFAIK, there are two types of in-only. Robust in-only - which I believe is the current implementation - and fire-and-forget - the latter AFAIK yet to be implemented in axis2. Furthermore, I have seen the 'server is not available, yet no exception' issue in the current robust-only implementation. I haven't read the spec entirely, but .net behavior may indicate that there should be compatibilty. My suggestion is to verify that the wsdl 2.0 spec does indeed indicate that robust in-only should throw when the server is down - that seems to be what you want. If so and there are no further comments, I suggest filing a JIRA. HTH, iksrazal Em Sábado 17 Dezembro 2005 15:15, o Peter McEvoy escreveu: > Hmmm. This does not seem very satsifactory. I fully agree that *server > code* exceptions should not be propagated back to the client once a HTTP > 202 is received, but anything up to that should generate an exception. If > I want to implement reliable messaging on top of the axis library (ala > WS-ReliableMessaging), how on earth can I detect transport level problems, > such as a in a disconnected "smart" client and implement retries etc? > > However, if you do not accept this argument then I would point out that > OneWay is declared within server-side WSDL, so it seems that the WSDL2Java > utility does not generate client code that uses a "request/response MEP" as > you suggest. (I am an application developer and really don't want to > concern myself with writing transport level, or even SOAP level code, and > hence why I use the WSDL2Java utility). > > As a side point, .Net generated one-way proxies at least report transport > level problems that are nothing to do with SOAP > > For what it's worth, > > Pete > > _____ > > From: Anne Thomas Manes [mailto:[EMAIL PROTECTED] > Sent: 16 December 2005 20:05 > To: [email protected]; [EMAIL PROTECTED] > Subject: Re: Exception not thrown when server not available using OneWay > messages > > > One-way messages do not return exceptions under any circumstances. If you > require a notice that a message can't be delivered, then you should use a > request/response MEP. > > Anne > > > On 12/16/05, Peter McEvoy <[EMAIL PROTECTED]> wrote: > > > Hi there, > I have a client that sends OneWay messags to a server - this works fine. > However, when the server is not available (down/not listening for HTTP), my > client code does not get an exception. Granted, the Axis code _does_ seem > to get an exception (java.net.ConnectException), but this does not seem to > be re-thrown, so my client code does not know that the async call has > actually failed. > > I've looked in the archive, and there are some messages about server side > exceptions during async calls, and I agree that the client should not know > about them - however server unavailable is at a lower level, and the client > probably _should_ know about these. > > As there something I am missing? > > My client code looks like: > > try{ > service.setEndpointAddress > ("PingServiceAsyncBinding", "http://localhost:9998/PingServiceAsync.asmx") > <http://localhost:9998/PingServiceAsync.asmx> ; > } catch (Exception e){ > log.error("Exception setting service endpoint", e); > } > > try { > PingServiceAsyncBinding binding = > service.getPingServiceAsyncBinding(); > > log.debug("Sending Ping message..."); > binding.pingAsync(); > > log.debug("Done."); > } catch (Exception e){ > log.error("Exception during PingAsync", e); > } > > Is there a property I need to set on the locator in order to be notified > about exceptions? > > Sincerely > Pete
