2012-05-10 145 views
2

客户方的错误是:运行Axis2 Web服务客户端生成的客户端错误和服务器端

0 [main] INFO org.ws.call.BankWSCallClass - callChequeCertificationWS... 
702 [main] INFO org.ws.call.BankWSCallClass - callChequeVerificationWS... serviceCreated 
702 [main] INFO org.ws.call.BankWSCallClass - callChequeVerificationWS... portCreated 
Exception in thread "main" org.apache.axis2.AxisFault: Exception occurred while trying to invoke service method chequeCertification 
    at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:531) 
    at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:375) 
    at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:421) 
    at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229) 
    at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165) 
    at org.ws.server.implementation.ChequeProcessingServiceStub.chequeCertification(ChequeProcessingServiceStub.java:911) 
    at org.ws.call.BankWSCallClass.callChequeCertificationWS(BankWSCallClass.java:53) 
    at org.ws.call.BankWSCallClass.main(BankWSCallClass.java:106) 

在服务器端错误是

[#|2012-05-10T15:52:32.390+0300|INFO|glassfish3.1.2|javax.enterprise.system.std.com.sun.enterprise.server.logging|_ThreadID=79;_ThreadName=Thread-2;|[ERROR] Exception occurred while trying to invoke service method chequeCertification 
java.lang.reflect.InvocationTargetException 
    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 org.apache.axis2.rpc.receivers.RPCUtil.invokeServiceClass(RPCUtil.java:212) 
    at org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:117) 
    at org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40) 
    at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:114) 
    at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:181) 
    at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:172) 
    at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:146) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:688) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:770) 
    at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1542) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) 
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655) 
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161) 
    at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231) 
    at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317) 
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195) 
    at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:849) 
    at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:746) 
    at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1045) 
    at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:228) 
    at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137) 
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104) 
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90) 
    at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79) 
    at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54) 
    at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59) 
    at com.sun.grizzly.ContextTask.run(ContextTask.java:71) 
    at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532) 
    at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513) 
    at java.lang.Thread.run(Thread.java:722) 
Caused by: java.lang.NullPointerException 
    at org.ws.server.implementation.ChequeProcessingService.chequeCertification(ChequeProcessingService.java:18) 
    ... 37 more 
|#] 

概述:我使用springourcetool(类似于eclipse)作为开发IDE。 Glassfish作为应用程序服务器。 Web服务是ChequeProcessingService,我生成.aar文件并将其部署在glassfish的axis2 web项目下。客户端代码是使用axis2代码生成器工具生成的,它只是简单地调用具有javabean请求参数的web服务方法“chequeCertification”,并返回另一个javabean响应对象。那现在用

Axis2的版本是1.6.2与JDK 1.7

从那里可能出现这个问题请咨询。

回答

5

真正的问题是这样的NullPointerException在您的服务器:

Caused by: java.lang.NullPointerException 
    at org.ws.server.implementation.ChequeProcessingService.chequeCertification 
     (ChequeProcessingService.java:18) 

这可能是你写一些代码,所以它不可能说的到底是什么问题。

客户端错误可能只是服务器引发异常时从服务器返回的错误响应的反应。您应该考虑添加一些逻辑来捕获调用Web服务时引发的AxisFaults,以便您可以打印更合适的错误消息。

+0

问题已解决。正如你所提到的那样,它在服务器端的javabean参数上是一个空指针异常问题。实际上我在axis2上是新的,我不知道如何在调用webservice之前在客户端设置javabean ...并且这使得它以空参数到达服务器... – hd84335