- - PR -
Linuxでservletが表示されない
«前のページへ
1|2|3|4
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-05-15 18:01
>HTTPステータス500 javax.servlet.ServletException: クラスHelloWorldは
>サーブレットではありません ということなので、サーブレットではないのでは? HttpServlet を継承していますか? doGet とか実装していますか? Windows でもサーブレットとして動作していましたか? "java.io.FileNotFoundException: /usr/tomcat/webapps/XXX/WEB-INF/classes/HelloWorld (No such file or directory) " のエラーは web.xml のクラス名の定義を変えることでパスが変わりますか? 切り分けのために YYY.HelloWorld を指定して "java.io.FileNotFoundException: /usr/tomcat/webapps/XXX/WEB-INF/classes/YYY/HelloWorld (No such file or directory) " と表示されるか確認してみてはいかがでしょう。 | ||||
|
投稿日時: 2007-05-15 18:15
大変申し訳ありません。 大きな勘違いをしていました。 HelloWorld.javaは public class HelloWorld{ public static void main(String[] args){ System.out.println("Hello World!"); } } というもので、サーブレットではありませんでした。 そこで、WinXPでコンパイル、実行できたMyServlet.javaをサーバでコンパイルしようと したところ、エラーが発生しました。 以下MyServlet.java package XXX; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class MyServlet extends HttpServlet{ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ response.getWriter().println("hello"); } } 以下エラー MyServlet.java:4: パッケージ javax.servlet は存在しません。 import javax.servlet.ServletException; ^ MyServlet.java:5: パッケージ javax.servlet.http は存在しません。 import javax.servlet.http.HttpServlet; ^ MyServlet.java:6: パッケージ javax.servlet.http は存在しません。 import javax.servlet.http.HttpServletRequest; ^ MyServlet.java:7: パッケージ javax.servlet.http は存在しません。 import javax.servlet.http.HttpServletResponse; ^ MyServlet.java:9: シンボルを見つけられません。 シンボル: クラス HttpServlet public class MyServlet extends HttpServlet{ ^ MyServlet.java:10: シンボルを見つけられません。 シンボル: クラス HttpServletRequest 場所 : hoge.MyServlet の クラス protected void doGet(HttpServletRequest request, ^ MyServlet.java:11: シンボルを見つけられません。 シンボル: クラス HttpServletResponse 場所 : hoge.MyServlet の クラス HttpServletResponse response) ^ MyServlet.java:12: シンボルを見つけられません。 シンボル: クラス ServletException 場所 : hoge.MyServlet の クラス throws ServletException, IOException{ ^ エラー 8 個 自分のミスでわけのわからないことをしたのに、お願いするのも大変心苦しいのですが もう少しだけ付き合っていただけないでしょうか? お願いします。 | ||||
|
投稿日時: 2007-05-15 18:38
とりあえずサーブレットを動かすことが目的であればまず .class ファイルをそのままコピーして動かしてみてはいかがでしょうか?
Write once, run anywhere ですから。 コンパイルの仕方について分からないのであれば、まずもう少し Google などでしらべてみてはいかがでしょう。 それでもわからなければ焦点を明確にするためにも別スレッドにしてはいかがでしょう。 | ||||
|
投稿日時: 2007-05-16 09:40
おはようございます。 コンパイルについては、classpathを通していなかったという ド素人のミスでした…。 次に、servletについてなんですが、 WinXPで動いていたもの、Linuxでコンパイルした2つとも動きませんでした。 結果は以下のとおりです クラス名:MyServlet WEB-INF/web.xml <servlet-name>MyServlet <servlet-class>XXX.MyServlet <url-pattern>/MyServlet -http://localhost:8080/XXX/MyServletの時 >tomcatを再起動直後 HTTPステータス500 例外)javax.servlet.ServletException: ラッパがサーブレットクラス XXX.MyServlet 又はそれが依存するクラスを見つけることができません 原因)java.lang.ClassNotFoundException: XXX.MyServlet >更新ボタンを押下 HTTPステータス404 サーブレットMyServletが利用できません -http://localhost:8080/XXX/servlet/MyServletの時(web.xmlを削除後) >tomcat再起動後、更新関わらず HTTPステータス404 - /XXX/servlet/MyServlet 以上です。 エラーの内容から、MyServletクラスが見つかっていないということだと思うのですが 正しいでしょうか? | ||||
|
投稿日時: 2007-05-16 11:55
>エラーの内容から、MyServletクラスが見つかっていないということだと思うのですが
>正しいでしょうか? ご認識の通りです。Windows で実行していたときと同じようにクラスが正しく配置されているか確認しましょう。 >-http://localhost:8080/XXX/servlet/MyServletの時(web.xmlを削除後) > >>tomcat再起動後、更新関わらず >HTTPステータス404 - /XXX/servlet/MyServlet そもそも Windows では /XXX/servlet/MyServlet で実行できているのでしょうか?繰り返しになりますが、InvokerServletがデプロイされているとすれば、アクセスすべきなのは /XXX/servlet/XXX/MyServlet になるのではないでしょうか? [ メッセージ編集済み 編集者: インギ 編集日時 2007-05-16 17:04 ] | ||||
|
投稿日時: 2007-05-18 13:03
javac の classファイル排出先、web.xml の設定を見直すべきかも
自作classファイルのClassNotFoundException や 404 などはね |
«前のページへ
1|2|3|4