我们正面临着jax-ws webservice的问题,我们偶尔会遇到以下异常:
com.sun.xml.ws.streaming.XMLStreamReaderException: unexpected XML tag. expected: {http://www.company.com/system}getFooResponse but found: {http://www.company.com/system}getFoo
at com.sun.xml.ws.streaming.XMLStreamReaderUtil.verifyTag(XMLStreamReaderUtil.java:214)
at com.sun.xml.ws.streaming.XMLStreamReaderUtil.verifyTag(XMLStreamReaderUtil.java:222)
at com.sun.xml.ws.client.sei.ResponseBuilder$DocLit.readResponse(ResponseBuilder.java:531)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:127)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:95)
at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:136)
at $Proxy226980.getFoo(Unknown Source)
at sun.reflect.GeneratedMethodAccessor315.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at weblogic.wsee.jaxws.spi.ClientInstanceInvocationHandler.invoke(ClientInstanceInvocationHandler.java:84)
at $Proxy185.getFoo(Unknown Source)
在生产系统上偶尔(并且不经常)发生异常(总是在通常有大量调用的批处理作业中)并且我们无法在本地重现它。当异常发生时,批处理自然会失败,并且它通常只是重新启动批处理作业以使其成功。 Web服务不是我项目的直接责任,但我们可以根据需要进行更改。
有没有人见过这个?看起来好像是回复了一个响应但是响应"部分被切断了。我不确定这是Web服务实现还是客户端代理的问题?
我不能100%确定使用了哪个版本,但我知道以下内容:
有什么想法吗?
注意:我们目前没有记录原始请求/响应,这自然是我们会考虑的事情。我在这里发布了这个问题,万一有人以前见过这个问题,可以指出我正确的方向。正如我所说的那样,我不确定服务器是否产生了错误的响应,客户端正在解释它是错误的,或者是与xml混淆的东西。
答案 0 :(得分:1)
您的堆栈跟踪显示您的客户端位于readResponse()
内,因此我猜服务器正在以错误的格式发回消息。你应该用嗅探器检查一下。