Java 进行webservice调用时出错
我正在使用Java 进行webservice调用时出错,java,axis2,webservices-client,Java,Axis2,Webservices Client,我正在使用axis2访问一个由其他人作为客户机公开的Web服务,我为abcStub.java(通过运行批处理生成的存根java文件)创建了一个包装器方法,并尝试在包装器java文件中实例化存根文件。但我发现以下错误: INFO: ERROR org.apache.struts.actions.DispatchAction - Dispatch[/remittanceTransaction] to method 'remTransApprove' returned an exception
axis2
访问一个由其他人作为客户机公开的Web服务,我为abcStub.java(通过运行批处理生成的存根java文件)创建了一个包装器方法,并尝试在包装器java文件中实例化存根文件。但我发现以下错误:
INFO: ERROR org.apache.struts.actions.DispatchAction - Dispatch[/remittanceTransaction] to method 'remTransApprove' returned an exception
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)
Caused by: java.lang.NoSuchMethodError: org.apache.neethi.PolicyEngine.getPolicy(Ljava/lang/Object;)Lorg/apache/neethi/Policy;
at org.tempuri.MIRSRemittanceServicesStub.getPolicy(MIRSRemittanceServicesStub.java:3558)
at org.tempuri.MIRSRemittanceServicesStub.populateAxisService(MIRSRemittanceServicesStub.java:57)
at org.tempuri.MIRSRemittanceServicesStub.(MIRSRemittanceServicesStub.java:268)
at org.tempuri.MIRSRemittanceServicesStub.(MIRSRemittanceServicesStub.java:257)
at org.tempuri.MIRSRemittanceServicesStub.(MIRSRemittanceServicesStub.java:305)
INFO: g.tempuri.MIRSRemittanceServicesStub.(MIRSRemittanceServicesStub.java:297)
at com.mtmrs.webservice.MIRSRemittanceTransactionManagerImpl.getAppDeclWrapper(MIRSRemittanceTransactionManagerImpl.java:201)
at com.mtmrs.business.backoffice.impl.RemittanceTransactionManagerImpl.remTransApprove(RemittanceTransactionManagerImpl.java:1417)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at com.mtmrs.application.backoffice.action.RemittanceTransactionAction.remTransApprove(RemittanceTransactionAction.java:1409)
... 78 more
INFO: WARN org.apache.struts.action.RequestProcessor - Unhandled Exception thrown: class javax.servlet.ServletException
WARNING: StandardWrapperValve[action]: PWC1406: Servlet.service() for servlet action threw exception
java.lang.NoSuchMethodError: org.apache.neethi.PolicyEngine.getPolicy(Ljava/lang/Object;)Lorg/apache/neethi/Policy;
at org.tempuri.MIRSRemittanceServicesStub.getPolicy(MIRSRemittanceServicesStub.java:3558)
at org.tempuri.MIRSRemittanceServicesStub.populateAxisService(MIRSRemittanceServicesStub.java:57)
at org.tempuri.MIRSRemittanceServicesStub.(MIRSRemittanceServicesStub.java:268)
也许我错了。无论哪种方式,都不知道如何修复。如果以前有人知道/解决了这个问题,那会有很大帮助
我是在打以下电话时得到这个消息的:
公共字符串getAppDeclWrapper(字符串会话、字符串父代理、字符串mirsTxnNo、字符串strReason、字符串isApprove、字符串modifiedBY){
String returnString=null;
试一试{
mtmrsLogger.info("Entering into Approve Decline procedure, Starting to send Status to MIRS");
MIRSRemittanceServicesStub stub = new MIRSRemittanceServicesStub(); //Error occurs at this line
ApproveDecline approvedEcline = new ApproveDecline();
ApproveDeclineResponse approveResponse = new ApproveDeclineResponse();
approvedEcline.setCParentAgent(parentAgent);
approvedEcline.setMirsSession(session);
approvedEcline.setModifiedBy(modifiedBY);
approvedEcline.setRefNo(mirsTxnNo);
approvedEcline.setStrReason(strReason);
approvedEcline.setIsApprove(isApprove);
我猜您的类路径上有多个版本(或无效版本)的PolicyEngine。我认为您正在servlet引擎中运行。请尝试以下代码确定此版本的存储位置并修复它:
org.apache.neethi.PolicyEngine.class.getProtectionDomain().getCodeSource().getLocation()
我猜您的类路径上有多个版本(或无效版本)的PolicyEngine。我认为您正在servlet引擎中运行。请尝试以下代码来确定此版本的存储位置并进行修复:org.apache.neethi.PolicyEngine.class.getProtectionDomain().getCodeSource().getLocation()@UsmanSaleem Thank Worked:)Neethi jar的问题,该jar有多个版本。但niw i面临严重问题:org.apache.axis2.AxisFault:服务器由于内部错误无法处理请求。已修复。我在webservice调用期间发送了错误的参数。没有问题,我将添加我的注释作为答案:)。
org.apache.neethi.PolicyEngine.class.getProtectionDomain().getCodeSource().getLocation()