webservice问题-方法不能接受超过1个参数

r55awzrz  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(525)

我正在使用intellij idea 8和axis建立一个部署在tomcat5.5上的Web服务。生成的wsdl如下所示:http://track.priskick.se/tracker.wsdl
方法声明为

public void storeImpressionReport(int siteId, int adId, int zoneId, int count,
                                  int excludeCount) { ... }

在网络服务中曝光。接下来,我使用axis构建客户机(也是java),但是作为一个运行时,使用参数对方法进行调用 0,0,0,0,0 ,我明白了:

Tried to invoke method public void com.xxxxx.xxxx.xxxx.xxxxx.storeImpressionReport(int,int,int,int,int) with arguments java.lang.Integer,null,null,null,null.  The arguments do not match the signature.; nested exception is: java.lang.IllegalArgumentException

将方法的参数数减少到1可以使它工作,但是这感觉像是一个非常愚蠢的限制和奇怪的行为。如果您知道这里可能有什么问题,请帮助我-为什么我不能公开方法并让它们接受多个参数?
===更新
我现在尝试使用intellij生成的wsdl生成客户机java,而不是使用?wsdl选项调用服务。这个wsdl保留了正确的参数名,可能是因为生成器可以访问源代码。现在我明白了
没有这样的操作“siteid”错误
以下是相关文件:http://track.priskick.se/tracker/trackersoapbindingstub.javahttp://track.priskikk.se/tracker/trackerservicetestcase。javahttp://track.priskick.se/tracker/tracker_porttype.javahttphttp://track.priskikk.se/tracker/trackerservice。javahttp://track.priskick.se/tracker/trackerservicelocator.java
客户端使用的wsdl位于http://track.priskick.se/tracker.wsdl
服务位于http://stage.klikki.com/services/tracker
干杯马库斯·Json

nc1teljy

nc1teljy1#

哦,快乐。我把服务风格改成了wrapped,这似乎解决了问题。

相关问题