2009-11-03 4 views
2

Я использую 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

Приветствиях Маркус Йоханссон

+0

Почему вы пытаетесь передать «null» вместо нуля для типа значения? –

+0

Я не ... я пропускаю только нули, но они, кажется, приходят в конец webservice как один java.lang.Integer и четыре нуля. –

+0

Можете ли вы показать подпись метода в сгенерированном клиенте? –

ответ

1

Oh радость. Я изменил стиль сервиса на WRAPPED, и это, похоже, решило проблему.

+0

Правильно, я думаю, что по умолчанию он сгенерировал литерал Document, который может взять один документ в качестве ввода, теперь, когда вы установили его в Document Wrapped, он будет исправлен. – shivaspk

 Смежные вопросы

  • Нет связанных вопросов^_^