我使用的是JAX-WS 2.1,我通过Netbeans 6.0中的开发工具使用JAX-WS构建了一个Web服务。似乎一切都正确构建并正确启动,但是在重新启动Tomcat后的第一个Web服务请求中,我得到以下异常:
严重:由于异常而无法创建SOAP消息:无法创建StAX读取器或编写器 com.sun.xml.ws.protocol.soap.MessageCreationException:由于异常而无法创建SOAP消息:无法创建StAX读取器或写入器 at com.sun.xml.ws.encoding.SOAPBindingCodec.decode(SOAPBindingCodec.java:365) 在com.sun.xml.ws.transport.http.HttpAdapter.decodePacket(HttpAdapter.java:277) 在com.sun.xml.ws.transport.http.HttpAdapter.access $ 500(HttpAdapter.java:93) at com.sun.xml.ws.transport.http.HttpAdapter $ HttpToolkit.handle(HttpAdapter.java:457) 在com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:244) 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.WSServletDelegate.doPost(WSServletDelegate.java:160) at com.sun.xml.ws.transport.http.servlet.WSServlet.doPost(WSServlet.java:75) 在javax.servlet.http.HttpServlet.service(HttpServlet.java:710) 在javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at or or or or or or or or or or or or or or or or 在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 在org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 在org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) 在org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 在org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 在org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263) 在org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190) 在org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283) 在org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767) 在org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:697) 在org.apache.jk.common.ChannelSocket $ SocketConnection.runIt(ChannelSocket.java:889) at org.apache.tomcat.util.threads.ThreadPool $ ControlRunnable.run(ThreadPool.java:690) 在java.lang.Thread.run(Thread.java:619)
我想有人之前已经看过这个错误,有人能告诉我我做错了什么以及为什么我只是在最初的网络服务请求上得到它?
肥皂要求:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="ws.companynamehere.com/xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ns2="ws.companynamehere.com/xsd">
<soapenv:Header/>
<soapenv:Body>
<ns2:Pickup>
<contact>
<company>DEMO COMPANY</company>
<name>DEMO COMPANY</name>
<phone>1111111111</phone>
<email>test@test.com</email>
</contact>
<shipper>
<shipperName>DEMO</shipperName>
<address>123 TEST AVE</address>
<city>SOMEWHERE</city>
<state>SC</state>
<zip>99999</zip>
<pickupContactName>Test</pickupContactName>
<phone>9999999999</phone>
<email>test@test.com</email>
<email2 />
<email3 />
<fax />
<requestPickupDate>20101008</requestPickupDate>
<requestPickupTime>1200</requestPickupTime>
</shipper>
<consignees>
<Consignee>
<name>TEST</name>
<destZip>99999</destZip>
<weight>1234</weight>
<pieces>1</pieces>
<pkgType>PL</pkgType>
</Consignee>
</consignees>
</ns2:Pickup>
</soapenv:Body>
</soapenv:Envelope>
肥皂反应(仅限第一次尝试):
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<S:Fault xmlns:ns4="http://www.w3.org/2003/05/soap-envelope">
<faultcode>S:Client</faultcode>
<faultstring>Couldn't create SOAP message due to exception: Unable to create StAX reader or writer</faultstring>
</S:Fault>
</S:Body>
</S:Envelope>