WSDL non accessible mais pas toujours
Bonjour,
je suis bloqué dans cette analyse, quelqu'un a peut être vu un cas similaire: j'ai une batterie de web services deployés qui ne sont pas toujours accessibles. Environnement Tomcat 1.6.0.35, Framework Struts.
99% des appels de service fonctionnent. Parfois on recoit cette erreur:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
[ERROR] 12 Dez 10:53:50.570 AM ActiveMQ Session Task-1 [ItemMasterData] - writeItem - Resource access error (WSDL) - <Failed to access the WSDL at: http://localhost:xxx/yyy/zzPort?wsdl. It failed with:
Got Connection refused: connect while opening stream from http://localhost:xxx/yyy/zzPort?wsdl.> Cause <Got Connection refused: connect while opening stream from ...
Caused by: javax.xml.ws.WebServiceException: Failed to access the WSDL at: http://... It failed with:
Got Connection refused: connect while opening stream from http://...
... 19 more
Caused by: java.io.IOException: Got Connection refused: connect while opening stream from http://...?wsdl
at com.sun.xml.ws.wsdl.parser.RuntimeWSDLParser.createReader(RuntimeWSDLParser.java:857)
at com.sun.xml.ws.wsdl.parser.RuntimeWSDLParser.resolveWSDL(RuntimeWSDLParser.java:298)
at com.sun.xml.ws.wsdl.parser.RuntimeWSDLParser.parse(RuntimeWSDLParser.java:155)
... 27 more
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at sun.net.NetworkClient.doConnect(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.http.HttpClient.<init>(Unknown Source)
at sun.net.www.http.HttpClient.New(Unknown Source)
at sun.net.www.http.HttpClient.New(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at java.net.URL.openStream(Unknown Source)
at com.sun.xml.ws.wsdl.parser.RuntimeWSDLParser.createReader(RuntimeWSDLParser.java:842)
... 29 more |
Le WSDL est bien entendu toujours accessible, mais apparement pas toujours vu cette erreur.
Le profiling de l'application ne montre aucun problème mémoire, l'application utilise 128Mb sur 512Mb configurés dans le Xmx, elle est la seule à tourner sur ce serveur de test qui a 8 Gb de RAM de libre -> donc pas de problème mémoire possible ici.
Les services sont déployés dans le conteneur web, ces services ne sont pas déployés par des EJB.
Comme l'erreur est rare mais persistente -> sur 30 000 appels de services on a régulièrement une dizaine de cas, je cale.
Dernière précision, ces web service ne sont pas en https. Le WSDL contient le header suivant:
Code:
1 2
|
<definitions xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://www.w3.org/ns/ws-policy" xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://ws..../" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://ws.....com/" name="MyService"> |
=> Si quelqu'un a une idée, elle sera bienvenue!
Merci