来自jax-ws webservice的零星异常

时间:2012-09-12 12:03:43

标签: java web-services exception java-ee jax-ws

我们正面临着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%确定使用了哪个版本,但我知道以下内容:

  • 使用JAX-WS生成Web服务,并在Oracle的WebLogic服务器
  • 上运行
  • 客户端代理由Oracle的JAX-WS 2.1.5
  • 生成
  • 客户端代理在Oracle WebLogic容器中运行

有什么想法吗?

注意:我们目前没有记录原始请求/响应,这自然是我们会考虑的事情。我在这里发布了这个问题,万一有人以前见过这个问题,可以指出我正确的方向。正如我所说的那样,我不确定服务器是否产生了错误的响应,客户端正在解释它是错误的,或者是与xml混淆的东西。

1 个答案:

答案 0 :(得分:1)

您的堆栈跟踪显示您的客户端位于readResponse()内,因此我猜服务器正在以错误的格式发回消息。你应该用嗅探器检查一下。