2012-09-12 68 views
2

我們所面臨的問題與JAX-WS Web服務,在這裏我們偶爾出現以下情況例外:在生產零星的例外

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) 

異常發生零星(不經常)系統(總是在通常有很多調用的批處理作業中),並且我們無法在本地重現它。當發生異常時,batchjob自然會失敗,並且通常只是重新啓動批處理作業以使其成功。 Web服務不是我的項目的直接責任,但我們可以根據需要進行更改。

有沒有人見過這個?它看起來像是回覆,但「響應」部分被切斷。我不確定這是否是Web服務實現或客戶端代理的問題?

我不是100%肯定已使用的版本,但我瞭解以下內容:

  • 與JAX-WS生成的Web服務,運行甲骨文的WebLogic服務器
  • 客戶端代理上通過Oracle的JAX-WS 2.1.5
  • 客戶端代理與運行產生了在Oracle WebLogic容器

任何想法?

注意:我們目前沒有記錄原始請求/響應,這是我們自然會考慮的事情。我在這裏發佈這個問題,以防有人以前看到過這個問題,並且可以指出我正確的方向。正如我所說的,我不確定服務器是否產生錯誤的響應,客戶端正在解釋它錯誤或與xml之間的混淆。

回答

1

你的堆棧跟蹤顯示你的客戶端在readResponse()之內,所以我猜服務器發送的消息格式不正確。你應該檢查一下嗅探器。

+0

是的,這當然是一種可能性。但是,正如我所說,這只是零星地發生在生產系統上,並且不能在本地複製,所以嗅探器並不是真正的選擇。我想我需要記錄所有的請求/迴應,看看返回的內容。 –