ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
971
971
EMPFEHLEN
-
Hallo allerseits,
nach stundenlangem googeln ohne Ergebnis versuche ich mein Glück mal hier.
Folgendes Szenario:
JBoss 5.0.1 GA mit Java 1.6, JAX-WS 2.1.7
Es gibt 2 mit JAX-WS geschriebene Webservices, die in unserer Testumgebung friedlich nebeneinander laufen.
Beim Kunden jedoch, kommt es beim Start der zweiten Anwendung zu folgener Exception:
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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
2010-11-25 07:03:52,074 INFO [javax.enterprise.resource.webservices.jaxws.server.http] (HDScanner) WSSERVLET12: JAX-WS context listener initializing ... 2010-11-25 07:03:54,866 INFO [javax.enterprise.resource.webservices.jaxws.servlet.http] (HDScanner) WSSERVLET14: JAX-WS servlet initializing 2010-11-25 07:03:55,049 SEVERE [javax.enterprise.resource.webservices.jaxws.servlet.http] (http-0.0.0.0-8080-1) caught throwable java.io.IOException at com.sun.xml.ws.server.SDDocumentImpl.writeTo(SDDocumentImpl.java:278) at com.sun.xml.ws.transport.http.HttpAdapter.publishWSDL(HttpAdapter.java:539) at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:229) at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:135) at com.sun.xml.ws.transport.http.servlet.WSServletDelegate.doGet(WSServletDelegate.java:129) at com.sun.xml.ws.transport.http.servlet.WSServlet.doGet(WSServlet.java:82) at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92) at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126) at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Thread.java:619) Caused by: com.ctc.wstx.exc.WstxIOException: null at com.ctc.wstx.sw.BaseStreamWriter.finishDocument(BaseStreamWriter.java:1687) at com.ctc.wstx.sw.BaseStreamWriter.close(BaseStreamWriter.java:288) at com.sun.xml.ws.server.SDDocumentImpl.writeTo(SDDocumentImpl.java:276) ... 27 more Caused by: ClientAbortException: java.net.SocketException: Broken pipe at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:348) at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:314) at org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:98) at com.ctc.wstx.io.UTF8Writer.flush(UTF8Writer.java:99) at com.ctc.wstx.sw.BufferingXmlWriter.flush(BufferingXmlWriter.java:214) at com.ctc.wstx.sw.BufferingXmlWriter.close(BufferingXmlWriter.java:194) at com.ctc.wstx.sw.BaseStreamWriter.finishDocument(BaseStreamWriter.java:1685) ... 29 more Caused by: java.net.SocketException: Broken pipe at java.net.SocketOutputStream.socketWrite0(Native Method) at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92) at java.net.SocketOutputStream.write(SocketOutputStream.java:136) at org.apache.coyote.http11.InternalOutputBuffer.realWriteBytes(InternalOutputBuffer.java:724) at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:449) at org.apache.coyote.http11.InternalOutputBuffer.flush(InternalOutputBuffer.java:299) at org.apache.coyote.http11.Http11Processor.action(Http11Processor.java:950) at org.apache.coyote.Response.action(Response.java:186) at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:343) ... 35 more
Laut meinen Erkentnissen kommt eine ClientAbortException dann zustande, wenn der Client die Verbindung abbricht, während der Server noch dabei ist, die Antwort zusammenzubauen.
Aber: Die Exception tritt bereits beim Start der Anwendung auf, zu diesem Zeitpunkt gibt es noch keine Clients! Was ist also die Ursache dieser Exception?
Bin für jeden Hinweis dankbar!
Gruß
Matthias
-
Nachtrag:
In der Theorie bin ich jetzt soweit:
Es gibt einen Client, der kontinuierlich Anfragen schickt. Diese Anfragen werden, während die Anwendung hochfährt, „gecached“, aber nicht beantwortet.
Wenn der Service dann da ist, werden die Anfragen abgearbeitet. Zu diesem Zeitpunkt hat der Client aber die Anfrage schon abgebrochen (da es ihm zu lange gedauert hat) und es kommt zu der Exception.
Die Frage ist nun: Was tun dagegen? Client runterfahren, wenn Anwendung neu gestartet wird?
Exception ignorieren und logs zumüllen lassen?
-
03.12.10 10:16 #3
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.886
- Blog-Einträge
- 29
Hallo,
hmm, eine Möglichkeit wäre IMHO das Timout für Datenempfang / Senden bei Client / Server entsprechend zu erhöhen.
Welche Exception fliegt denn auf dem Client?
Siehe auch:
http://www.tutorials.de/enterprise-j...t-problem.html
http://www.tutorials.de/enterprise-j...en-aufruf.html
Gruß TomJava rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
-
Hi Tom,
clientseitig tritt meines Wissens gar keine Exception auf....wobei...wenn ich recht überlege, muss ja irgend eine auftreten...
Das Problem ist, dass dieser Client nicht von uns ist und wir keinen Zugriff darauf haben.
Der Client holt sich, um die Dienstverfügbarkeit zu prüfen, 2-3 pro Sekunde die WSDL des Webservices (was ich für keine gute Idee halte).
Meine Theorie hat auch die recht pingelige Firewall nicht berücksichtig. Ich denke mittlerweile, dass die Firewall die Verbindungen wegen Inaktivität schliesst. Wenn der Service dann soweit ist, die Anfragen abzuarbeiten, ist die Verbindung zum Client schon geschlossen und es kommt zur Broken Pipe.
Gruß
Matthias
Ähnliche Themen
-
Erst Connection Reset dann Broken Pipe
Von H3llGhost im Forum JavaAntworten: 2Letzter Beitrag: 10.11.09, 16:44 -
broken world battle /wip`s
Von Saoron im Forum WerkstattAntworten: 0Letzter Beitrag: 11.05.07, 19:37 -
Abhängigkeiten von Services beim Starten von JBOSS
Von Pauer76 im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 0Letzter Beitrag: 10.05.07, 10:44 -
Netzwerkprogrammierung: Broken Pipe
Von Blandorin im Forum JavaAntworten: 3Letzter Beitrag: 20.08.06, 17:44 -
C++ Sockets, broken pipe
Von Tobi-Wan im Forum C/C++Antworten: 0Letzter Beitrag: 27.08.03, 12:00





Zitieren

Login





