4

Eclipse の Axis2 を使用して、Java から SOAP ベースの Web サービスを呼び出す必要があります。Web サービス コードは C# であり、BasicHttpBinding.

しかし、クライアント スタブからメソッドを呼び出すと、このエラーが発生します。

org.apache.axis2.AxisFault: オブジェクト参照がオブジェクトのインスタンスに設定されていません。

誰かがこれを理解するのを手伝ってくれますか? これはサービス側ですか、それともクライアント側ですか? 以前は「Internal Server error」が発生し、ログでこのエラーを確認できるように何かを追加する必要がありました。

4

1 に答える 1

6

メッセージは C# Web サービス側からのものです (「オブジェクト参照がオブジェクトのインスタンスに設定されていません」は、基本的に Java で NullPointerException に相当するものです) が、Java クライアントから送信したもの、または送信していないものが原因である可能性があります。 .

このエラーは通常、必要なパラメーターを送信しなかったこと、および Web サービスが入力を検証する適切なジョブを実行しなかったこと、および不足しているパラメーターが NullReferenceException の原因となった時点に到達したことを意味します。

ただし、確認する方法は 1 つしかありません。それは、通話のトラブルシューティングを行うことです。

SoapUIのようなものを使用してメッセージを作成し、それをサービスに送信することをお勧めします。SoapUI で呼び出しが成功したら、Java クライアントから同じパラメーターを使用して呼び出しを行い、何が起こるかを確認します。その場合、ログにプロキシを使用すると、送信されたメッセージが実際に期待どおりのものであるかどうかを確認するのに非常に役立ちます。

于 2013-06-11T19:47:55.717 に答える