1

cayenneサービス内で使用しようとしていAxis2ます (.aar ファイルとしてコンパイルされます)。

サービスで jar を見つけることができましたがcayenne、データベースに対してクエリを実行しようとすると、次の例外がスローされます。

2013-01-15 17:52:38,891 [http-8080-Processor25] DEBUG org.apache.axis2.transport.http.AxisServlet - org.apache.axis2.AxisFault: [v.3.0.2 2011 年 6 月 11 日 09:52 :20] 構成の初期化中にエラーが発生しました。[v.3.0.2 2011 年 6 月 11 日 09:52:20] [org.apache.cayenne.conf.DefaultConfiguration]: ドメイン構成ファイル「cayenne.xml」が見つかりません。

私はcayenne.xmlファイルをどこにでも置こうとしてきました(/lib /WEB-INF/lib /WEB-INF/classesただし、最初のファイルにしか望みがありませんでした)。

誰かが続行する方法について私にアドバイスしてもらえますか?

/lib directory.aar.

サービスのクラスローダーで使用されるクラスパスを印刷することは可能ですか (各サービスには独自のクラスローダーが必要であることを理解しています)。

4

1 に答える 1

1

私は Axis2 の専門家ではありませんが、Axis2 のクラス ローディング メカニズムの理論的な理解から、次の 2 つの選択肢があります。

  1. cayenne-server.jar と cayenne.xml が同じ ClassLoader によってロードされていることを確認します (cayenne-server.jar は /WEB-INF/lib に、cayenne.xml は /WEB-INF/classes/ にある必要があります)。

  2. DefaultConfiguration が XML ファイルを見つけることができるように、Cayenne をブートストラップする場所で Axis コードの現在のスレッド クラスローダーを設定します。

    Thread.currentThread().setContextClassLoader(getClass().getClassLoader());

于 2013-01-15T22:56:20.277 に答える