【发布时间】:2011-02-16 03:44:18
【问题描述】:
我有两个 web 服务 A 和 B。A 需要调用 B 中的一个 webMethods。 我怎样才能做到这一点? 我正在使用 maven 的 wsimport 插件来构建 A。这是为 B 生成必要的存根并将它们作为 Web 服务 A 的一部分包含在内。 但是,当我尝试调用 B 的 web 方法时,我得到了一个异常。谁能告诉我发生了什么? 下面是代码和异常跟踪: 代码:
BBeanService bbs = new BBeanService();
BBean bb = bbs.getBBeanPort();
bb.invokeWebService(); // this is throwing exception
这是异常跟踪:
com.sun.xml.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:116) 处 com.sun.xml.ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:188) 处的 java.lang.NullPointerException。 sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:119) 在 com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:89) 在 com.sun.xml。 ws.client.sei.SEIStub.invoke(SEIStub.java:118) at $Proxy175.getCase(Unknown Source) at com.kebok.ais.billing.server.ejb.impl.ChargeManagerBean.generateBillDetails(ChargeManagerBean.java:144)在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method .invoke(Method.java:597) 在 com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1011) 在 com.sun.enterprise.security.SecurityUtil.invoke (SecurityUtil.java:175) 在 com.sun.ejb.containers.BaseContainer.invokeTargetBeanMethod(BaseContainer.java:2920) 在 com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4011) 在 com.sun。 ejb.containers.WebServiceInvocationHandler.invoke(WebServiceInvocationHandler.java:190) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 的 $Proxy173.generateBillDetails(Unknown Source)在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method.invoke(Method.java:597) 在 com.sun.enterprise.webservice.InvokerImpl.invoke(InvokerImpl.java:78 ) 在 com.sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:146) 在 com.sun.xml.ws 的 com.sun.enterprise.webservice.EjbInvokerImpl.invoke(EjbInvokerImpl.java:82) .server.sei.EndpointMethodHandler.invoke(EndpointMethodHandler.java:257) 在 com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerT ube.java:93) 在 com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:595) 在 com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java: 554) 在 com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:539) 在 com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:436) 在 com .sun.xml.ws.api.pipe.helper.AbstractTubeImpl.process(AbstractTubeImpl.java:106) 在 com.sun.enterprise.webservice.MonitoringPipe.process(MonitoringPipe.java:147) 在 com.sun.xml.ws .api.pipe.helper.PipeAdapter.processRequest(PipeAdapter.java:115) 在 com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:595) 在 com.sun.xml.ws.api .pipe.Fiber._doRun(Fiber.java:554) 在 com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:539) 在 com.sun.xml.ws.api.pipe.Fiber .runSync(Fiber.java:436) 在 com.sun.xml.ws.api.pipe.helper.AbstractTubeImpl.process(AbstractTubeImpl.java:106) 在 com.sun.xml.ws.tx.service.TxServerPipe.process (TxServerPipe.java:317) 在 com.sun.enterprise.webservice.CommonServerSecurityPipe.processRequest(CommonServerSecurityPipe.java:222) 在 com.sun.enterpris e.webservice.CommonServerSecurityPipe.process(CommonServerSecurityPipe.java:133) 在 com.sun.xml.ws.api.pipe.helper.PipeAdapter.processRequest(PipeAdapter.java:115) 在 com.sun.xml.ws.api。 pipe.Fiber.__doRun(Fiber.java:595) 在 com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:554) 在 com.sun.xml.ws.api.pipe.Fiber。 doRun(Fiber.java:539) at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:436) at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java :243) 在 com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:444) 在 com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:244 ) 在 com.sun.enterprise.webservice.Ejb3MessageDispatcher.handlePost(Ejb3MessageDispatcher.java:113) 在 com.sun.com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:135)。 com.sun.enterprise.webservice.EjbWebServiceServlet.dispatchToEjbEndpoint(EjbWebServiceServlet. java:228) 在 com.sun.enterprise.webservice.EjbWebServiceServlet.service(EjbWebServiceServlet.java:157) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:847) 在 com.sun.enterprise.web.AdHocContextValve .invoke(AdHocContextValve.java:114) 在 org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) 在 org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) 在 org. apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587) 在 com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:87) 在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve. java:222) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at org.apache.catalina.core .StandardPipeline.invoke(StandardPipeline.java:587) 在 org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096) 在 org.apache.catalina.core.StandardEngineValve.inv oke(StandardEngineValve.java:166) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at org.apache .catalina.core.StandardPipeline.invoke(StandardPipeline.java:587) 在 org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096) 在 org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java :288) 在 com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:647) 在 com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:579) 在com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:831) 在 com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341) 在 com.sun。 com.sun.enterprise.web.connector.grizzly.DefaultReadT 上的 enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263) ask.doTask(DefaultReadTask.java:214) at com.sun.enterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(PortUnificationPipeline.java:380) at com.sun.enterprise.web.connector.grizzly.TaskBase.run( TaskBase.java:265) 在 com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106) 引起:javax.xml.ws.WebServiceException: java.lang.NullPointerException 在 com。 sun.enterprise.security.jmac.config.PipeHelper.makeFaultResponse(PipeHelper.java:328) 在 com.sun.enterprise.security.jmac.config.PipeHelper.getFaultResponse(PipeHelper.java:366) 在 com.sun.enterprise。 webservice.CommonServerSecurityPipe.processRequest(CommonServerSecurityPipe.java:227) 在 com.sun.enterprise.webservice.CommonServerSecurityPipe.process(CommonServerSecurityPipe.java:133) 在 com.sun.xml.ws.api.pipe.helper.PipeAdapter.processRequest( PipeAdapter.java:115) 在 com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:595) 在 com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:第554章) i.pipe.Fiber.doRun(Fiber.java:539) at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:436) at com.sun.xml.ws.server.WSEndpointImpl$2 .process(WSEndpointImpl.java:243) 在 com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:444) 在 com.sun.xml.ws.transport.http.HttpAdapter.handle (HttpAdapter.java:244) 在 com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:135) 在 com.sun.enterprise.webservice.Ejb3MessageDispatcher.handlePost(Ejb3MessageDispatcher.java:113) ) 在 com.sun.enterprise.webservice.EjbWebServiceServlet.dispatchToEjbEndpoint(EjbWebServiceServlet.java:228) 在 com.sun.enterprise.webservice.EjbWebServiceServlet 的 com.sun.enterprise.webservice.Ejb3MessageDispatcher.invoke(Ejb3MessageDispatcher.java:87)。服务(EjbWebServiceServlet.java:157)在 javax.servlet.http.HttpServlet.service(HttpServlet.java:847) 在 com.sun.enterprise.web.AdHocContextValve.invoke(AdHocContextValve.java:114) 在 org.apache.catalina .core.StandardPipeline.doInvo ke(StandardPipeline.java:648) 在 org.apache.catalina。
【问题讨论】:
标签: web-services jakarta-ee glassfish ejb-3.0 jax-ws