我正在使用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
1条答案
按热度按时间nc1teljy1#
哦,快乐。我把服务风格改成了wrapped,这似乎解决了问题。