2017-08-17 207 views
12

由於某種原因,Web服務的調用會在本地Weblogic 12c安裝中引發NullPointerException。相同的軟件包可以在另一個Weblogic 12c實例上正常工作,所以我的weblogic配置或server/java啓動參數一定有問題。但是,我無法弄清楚有什麼區別,服務器日誌消息根本沒有幫助。當然,我們也使用相同的JRE和類路徑庫。Weblogic 12c Web服務NullPointerException

這裏是例外

####<8.8.2017, 2:10:53,106 ip. EEST> <Error> <com.sun.xml.ws.server.sei.TieHandler> <IT-V-R90HKRNH> <is-mansrv> <[ACTIVE] ExecuteThread: '6' for queue: 'weblogic.kernel.Default (self-tuning)'> <HekoPassi> <> <46eb29b8-cb8a-44a9-94ed-e223acc07388-0000005d> <1502190653106> <[severity-value: 8] [rid: 0] [partition-id: 0] [partition-name: DOMAIN] > <BEA-000000> <null 
java.lang.NullPointerException 
    at weblogic.ejb.container.internal.BaseWSLocalObject.__WL_preInvoke(BaseWSLocalObject.java:85) 
    at com.foo.bar.service.sessionfacade.SessionFacadeBean_afdkf0_WSOImpl.__WL_getPublicKey_WS_preInvoke(Unknown Source) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at weblogic.wsee.server.ejb.WsEjb.preInvoke(WsEjb.java:50) 
    at weblogic.wsee.jaxws.WLSEjbInstanceResolver$WLSEjbInvoker.invoke(WLSEjbInstanceResolver.java:193) 
    at weblogic.wsee.jaxws.WLSInstanceResolver$WLSInvoker.invoke(WLSInstanceResolver.java:93) 
    at com.sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:149) 
    at com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:88) 
    at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:1136) 
    at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:1050) 
    at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:1019) 
    at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:877) 
    at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:419) 
    at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:868) 
    at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:422) 
    at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:169) 
    at weblogic.wsee.jaxws.WLSServletAdapter.handle(WLSServletAdapter.java:229) 
    at weblogic.wsee.jaxws.HttpServletAdapter$AuthorizedInvoke.run(HttpServletAdapter.java:667) 
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:368) 
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:163) 
    at weblogic.wsee.util.ServerSecurityHelper.authenticatedInvoke(ServerSecurityHelper.java:108) 
    at weblogic.wsee.jaxws.HttpServletAdapter$3.run(HttpServletAdapter.java:286) 
    at weblogic.wsee.jaxws.HttpServletAdapter.post(HttpServletAdapter.java:295) 
    at weblogic.wsee.jaxws.JAXWSServlet.doRequest(JAXWSServlet.java:128) 
    at weblogic.servlet.http.AbstractAsyncServlet.service(AbstractAsyncServlet.java:103) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) 
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:286) 
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:260) 
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:137) 
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:350) 
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:247) 
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3679) 
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3649) 
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:326) 
    at weblogic.security.service.SecurityManager.runAsForUserCode(SecurityManager.java:197) 
    at weblogic.servlet.provider.WlsSecurityProvider.runAsForUserCode(WlsSecurityProvider.java:203) 
    at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:71) 
    at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2433) 
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2281) 
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2259) 
    at weblogic.servlet.internal.ServletRequestImpl.runInternal(ServletRequestImpl.java:1691) 
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1651) 
    at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:270) 
    at weblogic.invocation.ComponentInvocationContextManager._runAs(ComponentInvocationContextManager.java:348) 
    at weblogic.invocation.ComponentInvocationContextManager.runAs(ComponentInvocationContextManager.java:333) 
    at weblogic.work.LivePartitionUtility.doRunWorkUnderContext(LivePartitionUtility.java:54) 
    at weblogic.work.PartitionUtility.runWorkUnderContext(PartitionUtility.java:41) 
    at weblogic.work.SelfTuningWorkManagerImpl.runWorkUnderContext(SelfTuningWorkManagerImpl.java:640) 
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:406) 
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:346) 

任何想法可能會導致此異常(或我怎麼能調試它,好像異常是從受WebLogic生成的動態代理拋出,前控制甚至進入實現類)。我可以使例外更詳細嗎?可能這是一個安全問題?但是,再次,堆棧跟蹤中沒有任何內容表明這一點。另外,部署日誌中也沒有例外。

+0

我發現的時候'config.xml'包含01發生的錯誤' 的WebLogic '。你有這樣的配置嗎? – Ilya

+0

沒有足夠的信息,有人可以告訴你解決方案。就像您嘗試訪問的Web服務一樣。它具體到特定的web服務API?你打算如何執行/打電話? – Ravi

+0

stacktrace'weblogic.wsee.jaxws'明確指出我正在使用JAX-WS API和Weblogic實現。我只是試圖使用WS-security摘要認證來訪問使用SoapUI的典型Web服務。 –

回答

3

希望這有助於:

(從MOSC(My Oracle Support社區)顯示java.lang.NullPointerException:com.sun.xml.ws.spi.db.JAXBWrapperAccessor.getPropertyAccessor當部署的WebService(文件編號2207272.1))

APPLIES TO: 

Oracle WebLogic服務器 - 版本12.1.1.0到12.2.1.2.0 [發佈12C本文件中的信息 適用於任何平臺。

SYMPTOMS 

當試圖與下面 示例代碼段部署一個web服務的應用程序,

@WebService 
public interface HelloServiceInterface { 
@WebMethod 
@RequestWrapper(className = "hello.HelloRequest") 
public String hello(@WebParam(name = "names") List<String> names); 

出現以下錯誤:

的java。郎。 NullPointerException異常:在 com.sun.xml.ws.spi.db.JAXBWrapperAccessor.getPropertyAccessor(JAXBWrapperAccessor.java:261) 在 com.sun.xml.ws.db.toplink.JAXBContextWrapper.getElementPropertyAccessor(JAXBContextWrapper.java:170 ) 在 com.sun.xml.ws.server.sei.EndpointArgumentsBuilder $ DocLit(EndpointArgumentsBuilder.java:598) 在 com.sun.xml.ws.server.sei.TieHandler.createArgumentsBuilder(TieHandler.java: 143) at com.sun.xml.ws.server.sei.TieHandler。(TieHandler.java:115)at com.sun.xml.ws.db.DatabindingImpl。(DatabindingImpl.java:118)at com。 sun.xml.ws.db.DatabindingProviderImpl.create(DatabindingProviderImpl.java:74) at com.sun.xml.ws.db.DatabindingProviderImpl.create(DatabindingProviderImpl.java:58) 在 com.sun.xml.ws.db.DatabindingFactoryImpl.createRuntime(DatabindingFactoryImpl.java:120) 在 的com.sun。 xml.ws.server.EndpointFactory.createSEIModel(EndpointFactory.java:521) at com.sun.xml.ws.server.EndpointFactory.create(EndpointFactory.java:300) at com.sun.xml.ws. server.EndpointFactory.createEndpoint(EndpointFactory.java:164) at com。sun.xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:577)at com.sun.xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:560)at com.sun。 xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:639)在 weblogic.wsee.jaxws.JAXWSDeployedServlet.getEndpoint(JAXWSDeployedServlet.java:355) 在 weblogic.wsee.jaxws.JAXWSServlet.registerEndpoint(JAXWSServlet的.java:167) 在weblogic.wsee.jaxws.JAXWSServlet.init(JAXWSServlet.java:79)在 weblogic.wsee.jaxws.JAXWSDeployedServlet.init(JAXWSDeployedServlet.java:91) 在javax.servlet.GenericServlet.init (GenericServlet.java:244)

CAUSE 

這是Eclipselink MOXy提供商的已知問題。 XmlElementWrapper註釋被忽略。該問題在 中報告錯誤:16685902 [https://support.oracle.com/epmos/faces/BugDisplay?parent=DOCUMENT&sourceId=2207272.1&id=16685902] - 網站服務參數列表給予 部署時爲NULLPOINTEREXCEPTION。

SOLUTION 

應用補丁16685902 [​​]到WebLogic Server 12.1.1。作爲一種變通方法,避免在 的WebLogic使用的EclipseLink MOXY提供商通過執行以下:

組PRE_CLASSPATH =%WLS%\模塊\ databinding.override_1.0.0.0.jar

REFERENCES 

BUG :16685902 [https://support.oracle.com/epmos/faces/BugDisplay?parent=DOCUMENT&sourceId=2207272.1&id=16685902] - WEBSERVICE參數列表給出的NullPointerException AT 部署