2

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) { ... }

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 に減らすと機能しますが、これはかなりばかげた制限と奇妙な動作のように感じます。ここで何が間違っているのか知っているなら、私を助けてください - メソッドを公開して、それらに複数のパラメーターを持たせることができないのはなぜですか?

===更新

?wsdl オプションでサービスを呼び出す代わりに、IntelliJ から生成された wsdl を使用してクライアント Java を生成しようとしました。おそらくジェネレーターがソースにアクセスできるため、この wsdl は正しいパラメーター名を保持します。今私は得る

そのような操作はありません 'siteId' AxisFault

関連するファイルは次の とおり です 。 java http://track.priskick.se/Tracker/TrackerService.java http://track.priskick.se/Tracker/TrackerServiceLocator.java

クライアントに使用される wsdl は、 http://track.priskick.se/Tracker.wsdlにあります。

サービスは http://stage.klikki.com/services/Trackerにあります。

乾杯マーカス・ヨハンソン

4

1 に答える 1

1

ああ、喜び。サービス スタイルを WRAPPED に変更したところ、問題が解決したようです。

于 2009-11-03T23:10:35.843 に答える