- - PR -
Axis へ jws ファイル登録時に FileNotFoundException エラー
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-03-23 20:07
初めまして。 SIYARO と申します。
SOAPの世界へ足を踏み入れたばかりです。 諸先輩方のお知恵をお借りしたく、投稿させて頂きました。 当初、Apache-SOAPで勉強していたのですが、「Axis」の存在を知り、 Apache-SOAPで動作していたクラスを、移植しようとしました。 Webサイト等で解説されている手順を見ながら、基本的な「jws」ファイルを 作成し、デプロイすることはできました。 ところが、Apache-SOAPで動かしていた自作クラスを移植しようとすると、 以下のエラーが発生してしまいます。 <エラー> java.io.FileNotFoundException: C:\Program Files\Apache Group\Tomcat 4.1\ webapps\axis\WEB-INF\jwsClasses\hoge.class (指定されたファイルが見つかりません。) 自分で作成したJavaファイルの拡張子を「jws」に変更し、 「<TOMCAT_HOME>\webapps\axis\」へコピーしました。 「hoge.jws」は、Packageで「jp.co.foo」となっており、エラーで表示されている 場所には無いのが普通だと思います。 不思議なのは、「<TOMCAT_HOME>\webapps\axis\WEB-INF\jwsClasses\jp\co\foo」 の中に、コンパイルされたクラス「hoge.class」が生成されていることです。 <質問1> 拡張子「jws」へ変更し、自動的にデプロイする場合、内部で「import」等で 呼び出されているクラスはどうすれば良いのでしょうか? エラーが発生するクラスは、importで自作したクラスを呼び出しています。 素人なりに考えたのは、それら呼び出されるクラスも、コンパイルして配置しなければ ならないと思うのですが、「<TOMCAT_HOME>\webapps\axis\jwsClasses」配下へは、 「jws」で指定したファイルしかコンパイル(配置)されないようです。 手動でコンパイル済みのクラスを「<TOMCAT_HOME>\webapps\axis\jwsClasses」配下へ コピーしてはみたものの、エラーは解消しませんでした。 <質問2> 一般的に、servletは「WEB-INF\Classes\」が従来の形だったと思うのですが、 Axisで呼び出されるクラスは、「WEB-INF\jwsClasses\」配下に配置しないといけないのでしょうか。 <質問3> Apache-SOAPでは、ブラウザ上で、SOAPの設定を行うことが出来て、 とても重宝したのですが、Axisではそのようなツールは存在しないのでしょうか。 <質問4> 「Apache-Axis」のおすすめの解説書を教えてください。 当方、Beanはよくわかりません。Javaはとりあえず扱えます。 <環境> WindowsXP Pro SP1 Tomcat4.1.29(5.0.19)ローカルにて両方ともテスト Java 1.4.2 Apache Axis 1.1 Final お忙しいとは思いますが、どうかご教授頂けないでしょうか。 よろしくお願いいたします。 |
|
投稿日時: 2004-03-25 10:18
<回答1, 2>
jwsにしたクラスはパッケージ名をなくして、importするクラスは 普通に WEB-INF\classes\ 以下に置けばよかったように思います。 間違ってたらごめんなさい。 <回答3> セキュリティ上の理由で、Axisの管理画面は削除されたということ だったと思います。web.xmlの以下の部分のコメントを外せば、 <!-- uncomment this if you want the admin servlet --> <!-- <servlet-mapping> <servlet-name>AdminServlet</servlet-name> <url-pattern>/servlet/AdminServlet</url-pattern> </servlet-mapping> --> /axis/servlet/AdminServlet?cmd=start またはstopで何かが(?)start/stopできるみたいです。 |
|
投稿日時: 2004-03-26 09:20
SIYAROです。
早速のレスありがとうございます。 > jwsにしたクラスはパッケージ名をなくして、importするクラスは > 普通に WEB-INF\classes\ 以下に置けばよかったように思います。 なるほど。 package名が入ってるクラスを、SOAPの呼び出し対象にしてはいけないと 言うことですね。これは気が付かなかったです。 > セキュリティ上の理由で、Axisの管理画面は削除されたということ > だったと思います。web.xmlの以下の部分のコメントを外せば、 これは助かります。 慣れてる方は、XMLをいじればいいだけの話だと一笑されそうですが、 私のような若輩者にとっては、とてもありがたい存在です。 少し遅くなると思いますが、必ずkanさんのレスの通り、 動作確認をしてから、ご報告したいと思います。 |
|
投稿日時: 2004-03-26 11:43
> なるほど。
> package名が入ってるクラスを、SOAPの呼び出し対象にしてはいけないと > 言うことですね。これは気が付かなかったです。 jwsを使って配布するときはpackage名が入れられないということだと思います。 jwsではなくwsddを使って配布するときは、呼び出すクラスにpackage名があって かまいません。 |
1