We have a JAX-WS environment where we receive the following error intermittently from the server. Our clients are triggered from within a tomcat6 web application. Environment is multi-threaded. I suspect this to be a multithread + JAXWS issue. Unable to gather additional logs or SOAP logging because of the scale. We might probably have about 1000+ threads running in our environment. Any help?
com.sun.xml.ws.client.ClientTransportException: The server sent HTTP status code 501: Not Implemented
at com.sun.xml.ws.transport.http.client.HttpTransportPipe.checkStatusCode(HttpTransportPipe.java:311) [jaxws-rt.jar:2.2.5]
at com.sun.xml.ws.transport.http.client.HttpTransportPipe.createResponsePacket(HttpTransportPipe.java:260) [jaxws-rt.jar:2.2.5]
at com.sun.xml.ws.transport.http.client.HttpTransportPipe.process(HttpTransportPipe.java:218) [jaxws-rt.jar:2.2.5]
at com.sun.xml.ws.transport.http.client.HttpTransportPipe.processRequest(HttpTransportPipe.java:137) [jaxws-rt.jar:2.2.5]
at com.sun.xml.ws.transport.DeferredTransportPipe.processRequest(DeferredTransportPipe.java:138) [jaxws-rt.jar:2.2.5]
at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:641) [jaxws-rt.jar:2.2.5]
at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:600) [jaxws-rt.jar:2.2.5]
at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:585) [jaxws-rt.jar:2.2.5]
at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:482) [jaxws-rt.jar:2.2.5]
at com.sun.xml.ws.client.Stub.process(Stub.java:323) [jaxws-rt.jar:2.2.5]
at com.sun.xml.ws.client.sei.SEIStub.doProcess(SEIStub.java:161) [jaxws-rt.jar:2.2.5]
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:113) [jaxws-rt.jar:2.2.5]
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:93) [jaxws-rt.jar:2.2.5]
at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:144) [jaxws-rt.jar:2.2.5]
at $Proxy37.waitForUpdates(Unknown Source) [na:na]
As you say, this is the server returning a 501 status code.
Have you considered to implement a servlet filter on the server that logs responses form the server which have a status code that indicate a problem?
Perhaps it is even possible to log the accompanying request that yielded a erroneous response.
Thanks for your response Ivan.
It is possible to get the soap trace of all the requests from the client. However, the logs getting generated are large (about 2 GB in 8 minutes). As this issue occurs hours after starting our tests, we are unable to handle this spew of logs.
Debug points in the server is one option. However, a) we do not have access to server code currently. b) I don't think it reaches the server code. The HTTP layer in the server side throws this exception.
Joined: Oct 04, 2006
I did suggest implementing a servlet filter that only logged certain requests and, if possible, responses. This in order to avoid large log files.
You say that you suspect the HTTP communication layer in the server - is it possible to examine the server logs for clues to why it returns a 501?
I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com
subject: Facing intermittent 501: Not Implemented issues in JAX-WS environment