Re: Improving user error messages for failed webservice connection?

2009-01-28 Thread Kent Närling
2008/12/11 Daniel Kulp 


> I THINK with CXF 2.0.9/2.1.3 (might be the latest SNAPSHOTS, don't remember
> exactly when I fixed this), when you catch the WebServiceException from the
> call, the "cause" will be the real cause (like the IOException) that could
> be
> examined for more information.
>
>
Yes it does, but the only way to differentiate between a 403 (eg invalid
authorization), invalid URL, etc is to PARSE the message for the IO
exception, not exactly elegant... ;-) (but I do that now)

Would be a reasonable future change to send some more specific exceptions?
For instance including the HTTP error as a separate field etc? or even
create some more specific exceptions for the most interesting ones?


Re: Improving user error messages for failed webservice connection?

2008-12-15 Thread Cyrille Le Clerc
figs to to reduce the logging level for the 
> PhaseInterceptorChain or similar which should solve that. 
> 
> 
>> How can we make this a bit more "user friendly"?
>>
>> I would like to catch at least the following situations and give an
>> application generated error message:
>> - Incorrect authorization
>> - Server unavailable/wrong address
>> etc
> 
> I THINK with CXF 2.0.9/2.1.3 (might be the latest SNAPSHOTS, don't
> remember 
> exactly when I fixed this), when you catch the WebServiceException from
> the 
> call, the "cause" will be the real cause (like the IOException) that could
> be 
> examined for more information.
> 
> 
> 
> -- 
> Daniel Kulp
> dk...@apache.org
> http://dankulp.com/blog
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Improving-user-error-messages-for-failed-webservice-connection--tp20951772p21018900.html
Sent from the cxf-user mailing list archive at Nabble.com.



Re: Improving user error messages for failed webservice connection?

2008-12-11 Thread Daniel Kulp
On Thursday 11 December 2008 3:57:24 am Kent Närling wrote:
> We have several application that are configured to connect to a webservice
> interface for our server.
> Naturally, it happens that this connection is sometimes configured
> incorrectly or maybe the server is down etc
> Unfortunately, this gives very bad and hard to read errors in the logs!
...
> (furthermore this is logged inside the MessageSenderInterceptor, is there
> any way to turn this off?)

Actually, it's not logged there.  There isn't any log statements in the 
MessageSenderInterceptor.   It's PROBABLY logged in the 
PhaseInterceptorChain.In anycase, you can use the standard 
java.util.logging configs to to reduce the logging level for the 
PhaseInterceptorChain or similar which should solve that. 


> How can we make this a bit more "user friendly"?
>
> I would like to catch at least the following situations and give an
> application generated error message:
> - Incorrect authorization
> - Server unavailable/wrong address
> etc

I THINK with CXF 2.0.9/2.1.3 (might be the latest SNAPSHOTS, don't remember 
exactly when I fixed this), when you catch the WebServiceException from the 
call, the "cause" will be the real cause (like the IOException) that could be 
examined for more information.



-- 
Daniel Kulp
[EMAIL PROTECTED]
http://dankulp.com/blog


Re: Improving user error messages for failed webservice connection?

2008-12-11 Thread Andrew Clegg
2008/12/11 Kent Närling <[EMAIL PROTECTED]>:

> Do you have any feedback on my other question regarding logging and error
> handling?

Unfortunately not, I'm sure someone else here will have a suggestion though.

Andrew.


Re: Improving user error messages for failed webservice connection?

2008-12-11 Thread Kent Närling
2008/12/11 Andrew Clegg <[EMAIL PROTECTED]>

> 2008/12/11 Kent Närling <[EMAIL PROTECTED]>:
> > 2008/12/11 Andrew Clegg <[EMAIL PROTECTED]>
> >> Well, you can request the WSDL:
> >>
> >> http://example.org:8080/my-web-app-war/services/MyService?wsdl
> >
> > Good idea! Is there any easy way of triggering this through CXF?
> > Or do I have to make my own http connection etc?
>
> Do you mean CXF on the server side or the client side? I thought you
> meant the server but maybe not.


Client side


>
>
> But in either case, I'm not sure but I don't think so. Since it's not
> actually a WS call you'd probably have to use a raw HTTP connection,
> not too tricky though :-)

Ok, no problem

Do you have any feedback on my other question regarding logging and error
handling?


Re: Improving user error messages for failed webservice connection?

2008-12-11 Thread Andrew Clegg
2008/12/11 Kent Närling <[EMAIL PROTECTED]>:
> 2008/12/11 Andrew Clegg <[EMAIL PROTECTED]>
>> Well, you can request the WSDL:
>>
>> http://example.org:8080/my-web-app-war/services/MyService?wsdl
>
> Good idea! Is there any easy way of triggering this through CXF?
> Or do I have to make my own http connection etc?

Do you mean CXF on the server side or the client side? I thought you
meant the server but maybe not.

But in either case, I'm not sure but I don't think so. Since it's not
actually a WS call you'd probably have to use a raw HTTP connection,
not too tricky though :-)

Andrew.


Re: Improving user error messages for failed webservice connection?

2008-12-11 Thread Kent Närling
2008/12/11 Andrew Clegg <[EMAIL PROTECTED]>

> 2008/12/11 Kent Närling <[EMAIL PROTECTED]>:
>
> > Also, is there any nice and reliable way to "ping" a webservice server
> via
> > CXF, without having to call a proper webservice function?
>
> Well, you can request the WSDL:
>
> http://example.org:8080/my-web-app-war/services/MyService?wsdl

Good idea! Is there any easy way of triggering this through CXF?
Or do I have to make my own http connection etc?

> 
>
> This ensures that the webserver is alive, the war file has deployed to
> it successfully, and the servlet is responding to incoming HTTP
> requests without throwing an exception.
>
> So I guess it fills the role of a basic ping pretty well.



>
> Andrew.
>


Re: Improving user error messages for failed webservice connection?

2008-12-11 Thread Andrew Clegg
2008/12/11 Kent Närling <[EMAIL PROTECTED]>:

> Also, is there any nice and reliable way to "ping" a webservice server via
> CXF, without having to call a proper webservice function?

Well, you can request the WSDL:

http://example.org:8080/my-web-app-war/services/MyService?wsdl

This ensures that the webserver is alive, the war file has deployed to
it successfully, and the servlet is responding to incoming HTTP
requests without throwing an exception.

So I guess it fills the role of a basic ping pretty well.

Andrew.


Improving user error messages for failed webservice connection?

2008-12-11 Thread Kent Närling
We have several application that are configured to connect to a webservice
interface for our server.
Naturally, it happens that this connection is sometimes configured
incorrectly or maybe the server is down etc
Unfortunately, this gives very bad and hard to read errors in the logs!

For instance, if the wrong http authorization has been set, the following
exception will typically be generated:
org.apache.cxf.interceptor.Fault: Could not send Message.
at
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:64)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221)
...
Caused by: java.io.IOException: Server returned HTTP response code: 403 for
URL: ...
at sun.reflect.GeneratedConstructorAccessor43.newInstance(Unknown Source)
...
Caused by: java.io.IOException: Server returned HTTP response code: 403 for
URL: ...
at
sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1170)
at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:367)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1904)
... 33 more
(furthermore this is logged inside the MessageSenderInterceptor, is there
any way to turn this off?)

How can we make this a bit more "user friendly"?

I would like to catch at least the following situations and give an
application generated error message:
- Incorrect authorization
- Server unavailable/wrong address
etc

Also, is there any nice and reliable way to "ping" a webservice server via
CXF, without having to call a proper webservice function?

Thanks for any help!


-- 
Kent Närling

System Architect
SEAMLESS
Dalagatan 100, 8 tr, 113 43 Stockholm, Sweden
Phone: +46 8 5648 7800, fax: +46 8 5648 7823
Mobile: +46 70 836 9925
Mail: [EMAIL PROTECTED]
www.seamless.se