16

Java アプリケーションを Web サーバーに接続するために Apache Axis を使用しています。wsdl2java を使用してスタブを作成しましたが、スタブを使用しようとすると、次の例外が発生します。

org.apache.axis.ConfigurationException: 指定されたサービス<web service name>は利用できません

何か案が?

4

5 に答える 5

22

@arnonym によってリンクされたドキュメントによると、この例外は誤解を招く可能性があります。サービスを見つけようとする最初の試みで、ConfigurationException がスローされ、キャッチされます。これは、ConfigurationException クラスによって DEBUG レベルでログに記録されます。次に、別の方法を使用して別の試行を行い、成功する可能性のあるサービスを見つけます。これを回避するには、log4j.properties で ConfigurationException クラスのログ レベルを INFO に変更します。

log4j.logger.org.apache.axis.ConfigurationException = INFO
于 2013-07-31T21:19:03.303 に答える
2

推測ですが、そのエラー メッセージは、サービス名を空白のままにしたことを報告しているようです。そのエラー メッセージを生成するコードは次のようになると思います。

throw new ConfigurationException("No service named" + serviceName + " is available");
于 2008-10-07T16:56:16.947 に答える
1

これは、Axis の制御フローで使用される例外です。

http://wiki.apache.org/ws/FrontPage/Axis/DealingWithCommonExceptions --> org.apache.axis.ConfigurationException: XXX という名前のサービスは利用できません

于 2011-06-27T16:45:09.527 に答える
0

これは私のコードがどのように見えるかです。それはうまくいくようです。サービス ロケータを使用していますか、それとも単にサービスを作成していますか?

SomeServiceLocator locator = new SomeServiceLocator();
SomeService service = null;
try
{
    service = locator.getSomeServiceImplPort();
}
catch (ServiceException e)
{
    e.printStackTrace();
}
于 2008-09-15T18:45:18.810 に答える
0

使用している Axis のバージョンはわかりませんが、サーバーとクライアントの両方に Axis2 を使用しており、Java2WSDL はローカルホストでサービスのデフォルト エンドポイントを作成します。WSDL2Java でクライアント スタブを作成すると、スタブのデフォルト コンストラクタは localhost を指します。サービスが他のエンドポイントにある場合は、エンドポイントをパラメーターとしてコンストラクターを使用する必要があります...おそらく問題はまったくありませんが、他の回答で述べたように、WSDL2Java 入力として使用している WSDL がないと、言うのは難しいです。

于 2008-10-14T11:48:12.700 に答える