Il s'agit plutôt d'une question d'utilisation de base de cxf. Comment/où pouvons-nous attraper l'exception/erreur HTTP réelle? J'ai un peu suivi le concept Interceptor/MessageObserver mais je n'ai pas pu capturer l'erreur HTTP en les utilisant. Je vois cette erreur dans le fichier journal log4j.CXF - attraper/gérer les exceptions HTTP
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.handleResponseInternal(HTTPConduit.java:1502)
at org.apache.cxf.transpot.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1448)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.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$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
... 9 more
Seule javax.xml.ws.WebServiceException avec "Impossible d'envoyer un message". message est lancé, tout en appelant le service
try{
GetListCollectionResult result = port.getListCollection();
}catch (javax.xml.ws.WebServiceException excep){
}
Voilà comment nous appelons le service.
Pour fournir des informations NTLM:
Authenticator.setDefault(extended class of Authenticator);
créer le service.
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
factory.setServiceClass(ListsSoap.class);
factory.setAddress(list_url);
ListsSoap port = (ListsSoap) factory.create();
Mettre à jour le conduit.
..
Client client = ClientProxy.getClient(port);
HTTPConduit http = (HTTPConduit) client.getConduit();
HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();
httpClientPolicy.setConnectionTimeout(36000);
httpClientPolicy.setAllowChunking(false);
http.setClient(httpClientPolicy);
service d'appel et obtenir le résultat.
GetListCollectionResult result = port.getListCollection();