gpt4 book ai didi

java - Axis2网络服务: wrong number of arguments when invoking method

转载 作者:行者123 更新时间:2023-12-01 12:53:35 25 4
gpt4 key购买 nike

我正在尝试使用 axis2 设置网络服务。我在 Eclipse 下创建了一个 Dynamic Web Projet,使用 Apache Tomcat 7 和动态 Web 版本 2.5。我已将 Axis 2 Facets 添加到配置中。

我有以下类(class):

package com.jo.ws;

public class Test {
public int add(int a, int b) {
return a + b;
}
}

然后,我使用自下而上的 Java bean Web 服务为该项目创建了一个 WebService,并将我的 Test 类添加到服务实现中。我在 slider 中选择了“启动服务”,并将配置中的 Apache Axis 更改为 Axis 2。然后,我使用默认选项生成了默认的 services.xml 文件。

我可以通过以下地址在网上访问我的项目:

http://localhost:8888/Axis2WS/

这将显示 Axis 2 页面,我可以看到我的服务处于 Activity 状态

 http://localhost:8888/Axis2WS/services/listServices 

wsdl 已正确生成并显示

如果需要的话我可以发布它。

但现在如果我这样做:

http://localhost:8888/Axis2WS/services/Test?method=add&a=2&b=1

我明白了:

<soapenv:Reason xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
<soapenv:Text xml:lang="en-US">wrong number of arguments</soapenv:Text>
</soapenv:Reason>

我还在 Eclipse 控制台日志中收到错误,并显示以下堆栈跟踪:

[ERROR] wrong number of arguments
java.lang.IllegalArgumentException: wrong number of arguments
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.axis2.rpc.receivers.RPCUtil.invokeServiceClass(RPCUtil.java:178)
at org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.ja va:117)
at org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMe ssageReceiver.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.util.RESTUtil.invokeAxisEngine(RESTUtil.java:144)
at org.apache.axis2.transport.http.util.RESTUtil.processURLRequest(RESTUtil.java:139)
at org.apache.axis2.transport.http.AxisServlet$RestRequestProcessor.processURLRequest(AxisServ let.java:837)
at org.apache.axis2.transport.http.AxisServlet.doGet(AxisServlet.java:273)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.jav a:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java: 607)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:315)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

知道我做错了什么吗?

感谢您的帮助!

最佳答案

错误来 self 在浏览器中输入的网址。调用该方法的正确 URL 是:

http://localhost:8888/Axis2WS/services/Test/add?a=3&b=2

您需要替换“?”在方法名称前加上“/”,然后在添加“?”后写入参数。在你的方法名称之后

关于java - Axis2网络服务: wrong number of arguments when invoking method,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24042555/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com