EclipseでAxis2 Webサービスを開発すると、Eclipseが自動的にAxis2のlibフォルダから新しいプロジェクトのlibフォルダにクラスをコピーしていることに気付きました。ただし、Axis2のlibフォルダのすべてのクラスがコピーされているわけではありません。興味深いことに、Webサービスは、Axis2のjarファイルがコピーされていない場合でも、Eclipse経由でTomcatにデプロイしても問題なく実行されます。また、Tomcatの一時ファイルを見ると、Webサービスのmodules.listにリストされているモジュールのjarファイルが生成されているようです。EclipseはすべてのAxis2 jarsをインポートしませんが、プロジェクトはまだTomcat上で実行されますか?
これで何が起こっているのか誰かが教えてくれますか? EclipseがAxis2のすべてのjarファイルをコピーしないのはなぜですか? Axis2の他のjarファイルがなくてもWebサービスをTomcatで実行できるのはなぜですか?それらの一時ファイルは何ですか?いつ、なぜそれが生成されていますか?
WebSphereで同じプロジェクトを実行しようとしましたが、JarsがないためClassDefNotFound例外が発生します。私の問題は、EclipseでコピーされなかったすべてのAxis2 jarファイルを自分のプロジェクトにコピーしたときに解決されました。しかし、私はTomcatがそれらのジャーを使わなくても私のプロジェクトを動かすことができるので私の解決策には満足できません。私のソリューションは本当に適切なソリューションですか?または、構成設定が欠落していますか?
これは単に明確化のためである:
私のWebサービスはすでにAxis2の中で実行されています。私のクラスロードポリシーはPARENT_LASTに設定されています。 WebSphereは独自のAxis2構成を持っているので、WebSphereがプロジェクト自体からAxis2を使用するように、クラス・ローディング・ポリシーをPARENT_LASTに設定する必要があります。クラスローディングポリシーを設定する以外に、WebサービスをWebSphere上で動作させるために何かをしました。私は上記のことを説明します。なぜ私はそのような方法を取らなければならないのでしょうか?
私はすでに彼に言いました(http://stackoverflow.com/questions/8502240/module-is-not-valid-when-deploying-an-axis2-web-service-on-websphereを参照)。聞こえません... –
@ AndreasVeithen:WebSphereには独自の設定があることはわかっています。あなたが答えたという質問をするまでに、私のクラスロードポリシーはすでにPARENT_LASTに設定されています。私のクラスローディング方針が既にPARENT_LASTに設定されていても、私のWebサービスはまだ動作していないので、私は質問を投稿したのです。とにかく、私のwebserviceは既に働いていて、あなたのソリューションは私の問題の解決策ではありません。自分の質問に答えを掲載しました。たぶんあなたはそれをまだチェックしていないかもしれません。そして、私の現在の問題はそれを解決する方法ではありません。 – Arci
@Udo開催:あなたの返事に感謝しますが、私の質問はそれを解決する方法ではありません。私はすでにAxis2でWebサービスを実行できました。私のアプローチは私のポストに示されました。私の疑問は、Axis2 WebサービスをWebSphere上で動作させるためにはなぜそうしたアプローチが必要なのかということです。クラスローディング方針に関するものではありません。 – Arci