views:

225

answers:

1

Hi, I'm using IntelliJ IDEA 8 and Axis to set up a webservice that's deployed on Tomcat5.5. The generated wsdl looks like this: http://track.priskick.se/Tracker.wsdl

A method is declared as

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

and exposed in the webservice. Next, I build the client (also Java) using Axis, but as a runtime call to the method is made with the parameters 0,0,0,0,0, I get this:

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

Reducing the number of parameters of the method to 1 makes it work, however this feels like a pretty silly limitation and strange behaviour. Please help me if you know what might be wrong here - why can't I expose methods and have them take more than one parameter?

=== UPDATE

I now tried generating the client java using wsdl generated from IntelliJ instead of calling the service with the ?wsdl option. This wsdl keeps the correct parameter names, maybe because the generator has access to the source. Now I get

No such operation 'siteId' AxisFault

These are the relevant files: http://track.priskick.se/Tracker/TrackerSoapBindingStub.java http://track.priskick.se/Tracker/TrackerServiceTestCase.java http://track.priskick.se/Tracker/Tracker%5FPortType.java http://track.priskick.se/Tracker/TrackerService.java http://track.priskick.se/Tracker/TrackerServiceLocator.java

the wsdl used for the client is found at http://track.priskick.se/Tracker.wsdl

the service is found at http://stage.klikki.com/services/Tracker

Cheers Marcus Johansson

A: 

Oh the joy. I changed the service style to WRAPPED, and this seems to have solved the problem.

Marcus Johansson
Correct, I think by default it generated a Document literal which can take a single document as Input, now that you have set it to Document Wrapped it will be fixed.
shivaspk