Я использую IntelliJ IDEA 8 и Axis для настройки веб-службы, развернутой на Tomcat5.5. Генерируется WSDL выглядит следующим образом: http://track.priskick.se/Tracker.wsdlПроблема Webservice - методы не могут принимать более одного параметра
Способ объявлен как
public void storeImpressionReport(int siteId, int adId, int zoneId, int count,
int excludeCount) { ... }
и экспонировали в веб-сервиса. Далее, я строю клиента (также 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 делает он работает, однако это кажется довольно глупым ограничением и странным поведением. Пожалуйста, помогите мне, если вы знаете, что здесь может быть неправильным - почему я не могу разоблачить методы и заставить их взять несколько параметров?
=== UPDATE
теперь я пытался генерировать клиент Java с помощью WSDL генерируемого из IntelliJ вместо вызова службы с опцией WSDL? Существует. Этот wsdl сохраняет правильные имена параметров, возможно, потому, что генератор имеет доступ к источнику. Теперь я получаю
Нет такой операции 'siteId' AxisFault
Это соответствующие файлы: http://track.priskick.se/Tracker/TrackerSoapBindingStub.java http://track.priskick.se/Tracker/TrackerServiceTestCase.java http://track.priskick.se/Tracker/Tracker_PortType.java http://track.priskick.se/Tracker/TrackerService.java http://track.priskick.se/Tracker/TrackerServiceLocator.java
WSDL, используемый для клиента найдены в http://track.priskick.se/Tracker.wsdl
serv лед находится на http://stage.klikki.com/services/Tracker
Приветствиях Маркус Йоханссон
Почему вы пытаетесь передать «null» вместо нуля для типа значения? –
Я не ... я пропускаю только нули, но они, кажется, приходят в конец webservice как один java.lang.Integer и четыре нуля. –
Можете ли вы показать подпись метода в сгенерированном клиенте? –