2017-08-17 1 views
12

Pour une raison quelconque, l'appel du service Web renvoie NullPointerException sur mon installation Weblogic 12c locale. Le même paquet fonctionne correctement sur une autre instance de Weblogic 12c, il doit donc y avoir quelque chose qui ne va pas dans ma configuration weblogic ou dans les paramètres de démarrage du serveur/java. Cependant, je ne pouvais pas comprendre quelle est la différence, et le message du journal du serveur n'aide pas du tout. Bien sûr, nous utilisons également les mêmes bibliothèques JRE et classpath.Service Web Weblogic 12c NullPointerException

Voici l'exception

####<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) 

Toute idée de ce qui peut provoquer cette exception (ou comment je peux le déboguer, semble être l'exception est levée à partir d'un proxy dynamique générée par weblogic, avant que le contrôle va même classe d'implémentation). Puis-je rendre l'exception plus verbeuse? Cela peut-il être un problème de sécurité? Mais encore une fois, rien dans le stacktrace n'indique cela. En outre, il n'y a aucune exception dans le journal de déploiement.

+0

J'ai trouvé que l'erreur se produit lorsque 'config.xml' contient ' weblogic vrai '. Avez-vous une telle configuration? – Ilya

+0

Il n'y a pas assez d'informations, sur lesquelles quelqu'un peut vous dire la solution. Comme à quel service Web essayez-vous d'accéder? Est-ce spécifique à l'API webservice spécifique? comment essayez-vous d'exécuter/appeler? – Ravi

+0

La pile stack 'weblogic.wsee.jaxws' indique clairement que j'utilise l'API JAX-WS et l'implémentation Weblogic. J'essaie juste d'accéder au service web typique avec SoapUI en utilisant l'authentification digest WS-security. –

Répondre

3

Hope this helps:

(de MOSC (Ma Oracle Community Support) java.lang.NullPointerException: com.sun.xml.ws.spi.db.JAXBWrapperAccessor.getPropertyAccessor lors du déploiement WebService (Doc ID 2207272,1))

APPLIES TO: 

Oracle WebLogic Server - version 12.1.1.0 à 12.2.1.2.0 [Communiqué 12c] Les informations contenues dans ce document s'applique à toute plate-forme.

SYMPTOMS 

Lors d'une tentative de déploiement d'une application de service Web avec l'extrait de code exemple ci-dessous ,

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

l'erreur suivante se produit:

java. lang. 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) à com.sun.xml.ws.server.sei.TieHandler. (TieHandler.java:115) à com.sun.xml.ws.db.DatabindingImpl. (DatabindingImpl.java:118) à 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) à com.sun.xml.ws.server.EndpointFactory.create (EndpointFactory.java:300) à com.sun.xml.ws. server.EndpointFactory.createEndpoint (EndpointFactory.java:164) à com.sun.xml.ws.api.server.WSEndpoint.create (WSEndpoint.java:577) à com.sun.xml.ws.api.server.WSEndpoint.create (WSEndpoint.java:560) à 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 

Ceci est un problème connu avec le fournisseur EclipseLink Moxy. L'annotation XmlElementWrapper est ignorée. La question est rapporté dans Bug: 16685902 [https://support.oracle.com/epmos/faces/BugDisplay?parent=DOCUMENT&sourceId=2207272.1&id=16685902] - WEBSERVICE LISTE DES PARAMETRES DONNE NullPointerException AU DÉPLOIEMENT.

SOLUTION 

Appliquer Patch 16685902 [https://support.oracle.com/epmos/faces/ui/patch/PatchDetail.jspx?parent=DOCUMENT&sourceId=2207272.1&patchId=16685902] pour WebLogic Server 12.1.1. Pour contourner ce problème, évitez l'utilisation du fournisseur EclipseLink Moxy dans WebLogic en faisant ci-dessous:

ensemble PRE_CLASSPATH =% WLS% \ modules \ 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 LISTE dES NullPointerException à DONNE PARAMETER DÉPLOIEMENT