I see this error in the log4j log file.
Caused by: org.apache.cxf.transport.http.HTTPException: HTTP response '401: Unauthorized' when communicating with http://10.107.172.79/test/_vti_bin/lists.asmx at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResp onseInternal(HTTPConduit.java:1502) at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResp onse(HTTPConduit.java:1448) at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTP Conduit.java:1356) at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56) at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:614) at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingI nterceptor.handleMessage(MessageSenderInterceptor.java:62) ... 9 more Only javax.xml.ws.WebServiceException with "Could not send Message." message is thrown while calling the service try{ GetListCollectionResult result = port.getListCollection(); }catch (javax.xml.ws.WebServiceException excep){ } How/where can we catch the actual HTTP exception/error. I kind of followed the Interceptor/MessageObserver concept but could not capture the HTTP error using them. This is how we call the service. To provide NTLM credentials: Authenticator.setDefault( extended class of Authenticator); Create the service. JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); factory.setServiceClass(ListsSoap.class); factory.setAddress(list_url); ListsSoap port = (ListsSoap) factory.create(); Update the conduit. .. Client client = ClientProxy.getClient(port); HTTPConduit http = (HTTPConduit) client.getConduit(); HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy(); httpClientPolicy.setConnectionTimeout(36000); httpClientPolicy.setAllowChunking(false); http.setClient(httpClientPolicy); Call service and get the result. GetListCollectionResult result = port.getListCollection(); .. And finally close the conduit. http.close();
