My server is using XFire to handle web service request
But its CPU was taken up to 100% or sometimes even 1000%
When I restartd the server and after some request, this weird problem showed up again
I scan the thread dump,the thread that take up CPU is like this:
httpWorkerThread-18028-39" daemon prio=10 tid=0xa0832800 nid=0x1d89 runnable [0x99e69000]
java.lang.Thread.State: RUNNABLE
at com.sun.xml.stream.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:892)
at com.sun.xml.stream.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:362)
at com.sun.xml.stream.XMLReaderImpl.next(XMLReaderImpl.java:568)
at org.codehaus.xfire.soap.handler.ReadHeadersHandler.invoke(ReadHeadersHandler.java:44)
at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
at org.codehaus.xfire.transport.DefaultEndpoint.onReceive(DefaultEndpoint.java:64)
at org.codehaus.xfire.transport.AbstractChannel.receive(AbstractChannel.java:38)
at org.codehaus.xfire.transport.http.XFireServletController.invoke(XFireServletController.java:304)
at org.codehaus.xfire.transport.http.XFireServletController.doService(XFireServletController.java:129)
at org.codehaus.xfire.transport.http.XFireServlet.doPost(XFireServlet.java:116)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:753)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:846)
It seems like XFire is parsing a XML file,but as time went by,the thread dump had no different at all,the thread was just like in a infinite loop.
However, I don't have enough experience with XFire,I can't figure out what cause the problem
I google a lot and find this topic whose phenomenon is just like mine
However,this topic suggest it may be a JVM bug and using JDK5 instead of JDK6.I am trying using JDK5 to see whether it would help
Is anyone encountered such problem? What cause this problem and how to fix it?
thx a lot.