Java Web服务问题-方法可以';不能接受超过1个参数

Java Web服务问题-方法可以';不能接受超过1个参数,java,web-services,axis,tomcat5.5,Java,Web Services,Axis,Tomcat5.5,我正在使用IntelliJ IDEA 8和Axis建立一个部署在Tomcat5.5上的Web服务。生成的wsdl如下所示: 方法声明为 public void storeImpressionReport(int siteId, int adId, int zoneId, int count, int excludeCount) { ... } 并在Web服务中公开。接下来,我使用Axis构建客户机(也是Java),但是当使用参

我正在使用IntelliJ IDEA 8和Axis建立一个部署在Tomcat5.5上的Web服务。生成的wsdl如下所示:

方法声明为

public void storeImpressionReport(int siteId, int adId, int zoneId, int count,
                                  int excludeCount) { ... }
并在Web服务中公开。接下来,我使用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” 轴断层

以下是相关文件:

用于客户端的wsdl位于

该服务位于

干杯
马库斯·约翰逊

哦,快乐。我将服务样式更改为WRAPPED,这似乎解决了问题。

为什么您试图为值类型传递“null”而不是零?我不是-我只传递零,但它们似乎以一个java.lang.Integer和四个null的形式到达Web服务端。您能在生成的客户端中显示该方法的签名吗?嗨,谢谢你的关心。我现在尝试使用IntelliJ生成的wsdl生成客户端java,而不是使用?wsdl选项调用服务。此wsdl保留正确的参数名称,可能是因为生成器可以访问源。现在我没有得到这样的操作“siteId”AxisFault@Marcus。我建议您用这些细节更新您的问题。这可能比注释系统更合适,也更具可读性:)正确,我认为默认情况下它生成了一个文档文本,可以将单个文档作为输入,现在您已经将其设置为Document Wrapped,它将被修复。