我們有一個由 JAX-WS RI 2.2.9-b130926.1035 生成的 EshopService_Service 類 - 從 wsdl 文件生成的源版本:2.2。從 weblogic 版本 12.1.2.0.0 升級到 12.2.1.3 后,我們在創(chuàng)建 Service 實(shí)例時(shí)得到了這個堆棧:java.lang.NullPointerException at com.oracle.webservices.impl.wsdl.WSDLBoundOperationImpl.<init>(WSDLBoundOperationImpl.java:540) at com.oracle.webservices.impl.wsdl.WSDLBoundPortTypeImpl.<init>(WSDLBoundPortTypeImpl.java:80) at com.oracle.webservices.impl.wsdl.WSDLModelImpl.mapBindings(WSDLModelImpl.java:169) at com.oracle.webservices.impl.wsdl.WSDLModelImpl.mapBindings(WSDLModelImpl.java:189) at com.oracle.webservices.impl.wsdl.WSDLModelImpl.<init>(WSDLModelImpl.java:48) at com.oracle.webservices.impl.wsdl.WSDLConverterImpl.wsdlModelFromDefinition(WSDLConverterImpl.java:292) at com.oracle.webservices.impl.wsdl.WSDLConverterImpl.getWSDLModel(WSDLConverterImpl.java:248) at com.oracle.webservices.impl.wsdl.WSDLConverterImpl.getWSDLService(WSDLConverterImpl.java:303) at weblogic.wsee.jaxws.spi.WLSProvider$ServiceDelegateImpl.<init>(WLSProvider.java:1124) at weblogic.wsee.jaxws.spi.WLSProvider.createServiceDelegate(WLSProvider.java:223) at weblogic.wsee.jaxws.spi.WLSProvider.createServiceDelegate(WLSProvider.java:150) at javax.xml.ws.Service.<init>(Service.java:77) at xx.xx.xxxxxxx.services.eshop.EshopService_Service.<init>(EshopService_Service.java:40) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)WSDLBoundOperationImpl 是 weblogic 的內(nèi)部類,網(wǎng)上沒有關(guān)于該類的信息...我們已經(jīng)反編譯了 WSDLBoundOperationImpl 類,當(dāng)owner.getPortType() 返回 null 時(shí),它看起來失敗了owner.getPortType().get(this.name);...事實(shí)上,我們的 WSDL 不包含任何“portType”元素,但 portType 不是必需的 wsdl 指令,并且相同的 WSDL 在 Weblogic 版本 12.1.2.0.0 上運(yùn)行良好。如何解決這個問題呢?我們無法更改 wsdl 文件的內(nèi)容...
1 回答

慕妹3242003
TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超6個贊
看起來我找到了解決方法... Weblogic正在使用自己的jax ws Provider實(shí)現(xiàn)...但是具有https://docs.oracle.com/cd/E24329_01/web.1211/e24964/data_types.htm#WSGET348 功能您可以定義javax.xml.ws.spi.Provider
為(在我的情況下)org.apache.cxf.jaxws.spi.ProviderImpl
...然后,在創(chuàng)建服務(wù)實(shí)例時(shí),作為 Provider 使用 apace.cxf 提供程序的實(shí)例...
添加回答
舉報(bào)
0/150
提交
取消