2014-02-19 44 views
1

我目前正試圖從Weblogic 12c和Java 7環境中調用JAX-WS。我已經生成使用WebLogic客戶端插件發電機從行家,尤其是客戶端存根:com.sun.xml.ws.client.ClientTransportException:HTTP傳輸錯誤:java.lang.ClassCastException

<b>groupId:com.oracle.weblogic</b><br> 
<b>artifactId:weblogic-maven-plugin</b> 

客戶罐子似乎產生罰款。我能夠生成Java客戶端存根,但在實際的API是通過將發送SOAP消息發送到服務存根叫,我得到以下奇怪的例外:

<b>com.sun.xml.ws.client.ClientTransportException: HTTP transport error: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer 
com.sun.xml.ws.client.ClientTransportException: HTTP transport error: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer 
     at com.sun.xml.ws.transport.http.client.HttpClientTransport.getOutput(HttpClientTransport.java:131) 
     at com.sun.xml.ws.transport.http.client.HttpTransportPipe.process(HttpTransportPipe.java:219) 
     at com.sun.xml.ws.transport.http.client.HttpTransportPipe.processRequest(HttpTransportPipe.java:143) 
     at com.sun.xml.ws.transport.DeferredTransportPipe.processRequest(DeferredTransportPipe.java:138) 
     at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:892) 
     at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:841) 
     at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:804) 
     at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:706) 
     at com.sun.xml.ws.client.Stub.process(Stub.java:385) 
     at com.sun.xml.ws.client.sei.SEIStub.doProcess(SEIStub.java:189) 
     at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:119) 
     at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:102) 
     at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:172) 
     at $Proxy130.getSearchResults(Unknown Source) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:601) 
     at weblogic.wsee.jaxws.spi.ClientInstanceInvocationHandler.invoke(ClientInstanceInvocationHandler.java:84)</b> 

我看到了同樣的問題被張貼在玻璃魚設置Here

但沒有解決方案。

現在我已經嘗試了SOAP UI,服務響應良好,我試過使用weblogic 11g,並且生成相同的錯誤。我記錄了生成異常之前即將發生的實際SOAP消息,並且xml是準確的,並且在從SOAP UI運行時工作正常。

這可能是什麼原因造成的?

謝謝

回答

2

我花了幾個小時來解決問題。我使用了錯誤的BindingProviderProperties接口。

BindingProviderProperties接口存在於兩個不同的包中。 (針對不同的Java/JAX-WS版本)

如果您正在獲取ClassCastException,那麼很可能需要在您的soap服務類中導入不同的包。

變化

import com.sun.xml.ws.client.BindingProviderProperties; 

import com.sun.xml.internal.ws.client.BindingProviderProperties; 
+1

這無疑給我在正確的方向。我使用字符串值設置了BindingProviderProperties超時值,而不是整數值(例如「5000」與5000)。謝謝! –

+0

@MartinDevillers謝謝!我有與Long值相同的問題,必須將Duration.toMillis()的返回值轉換爲Integer。 –