- PR -

Linuxでservletが表示されない

投稿者投稿内容
タスマニア三郎
会議室デビュー日: 2007/05/10
投稿数: 15
お住まい・勤務地: 馴れ合いの果て
投稿日時: 2007-05-14 16:33
はじめまして
初心者で、簡単なことを質問しているかもしれませんが、ご容赦ください

環境は以下の通りです(サーバ)
Linux Fedora5
jdk1.6.0_01
apache-tomcat-6.0.10

上記のサーバにWinXPで作成(コンパイル済み)のJAVAファイル(HelloWorld.class)を
FTPでUPして、ブラウザ上で見れるようにしたいのですが、
エラーが発生し、見ることができません。
どこか修正するべき点があればお教えください。

HelloWorld.classの置き場所
/usr/apache-tomcat-6.0.10/webapps/XXX/WEB-INF/classes

JAVA_HOME=/usr/java/jdk
PATH=$PATH:$JAVA_HOME/bin
TOMCAT_HOME=/usr/tomcat
CATALINA_HOME=/usr/tomcat
CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/lib/

/usr/apache-tomcat-6.0.10/webapps/XXX/WEB-INF/web.xmlは修正済みです
@http://localhost:8080/XXX/HelloWorld
Ahttp://localhost:8080/XXX/servlet/HelloWorld(web.xmlは空白)
両方ともエラーが発生しました。

1,javax.servlet.ServletException: ラッパがサーブレットクラス XXX.HelloWorld 又はそれが依存するクラスを見つけることができません
2,The requested resource (サーブレット HelloWorld が利用できません) is not available.

/usr/apache-tomcat-6.0.10/webapps/XXX/index.htmlは表示されました
どうかお力をお貸しください。お願いします。


[ メッセージ編集済み 編集者: タスマニア三郎 編集日時 2007-05-14 16:36 ]
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2007-05-14 16:52
- Windows では正常に動いているのでしょうか?
- web.xml はどのように修正済みなのでしょうか?
- HelloWorld はサーブレットですか?
- HelloWorld はどのパッケージに属していますか?
- HelloWorld は WEB-INF/classes 直下に配置されているのでしょうか?
-> "XXX.HelloWorld"とエラーがでているので、 WEB-INF/classes/XXX/ 以下に配置すべきかもしれません。
D.Matsu
ベテラン
会議室デビュー日: 2006/12/07
投稿数: 51
投稿日時: 2007-05-14 16:57
とりあえず

引用:

HelloWorld.classの置き場所
/usr/apache-tomcat-6.0.10/webapps/XXX/WEB-INF/classes



なのに

引用:

TOMCAT_HOME=/usr/tomcat
CATALINA_HOME=/usr/tomcat



なのが気になりますが。
/usr/tomcat -> /usr/apache-tomcat-6.0.10のシンボリックリンクとか張られてますか?
タスマニア三郎
会議室デビュー日: 2007/05/10
投稿数: 15
お住まい・勤務地: 馴れ合いの果て
投稿日時: 2007-05-14 17:11
>インギ様
早速のお返事ありがとうございます。
説明不足で申し訳ありません。

- Windows では正常に動いているのでしょうか?

HelloWorld.classはWinXP上で確認済みです。(Eclipseを使用し、localhostで表示)

- web.xml はどのように修正済みなのでしょうか?

以下web.xml(WinXPで動作したものをコピー)
<web-app>
<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>XXX.HelloWorld</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>
</web-app>

- HelloWorld はサーブレットですか?

はい、中身はSystem.out.println("HelloWorld");のみです

- HelloWorld はどのパッケージに属していますか?

package XXX;です

- HelloWorld は WEB-INF/classes 直下に配置されているのでしょうか?

はい、WEB-INF/classesの直下に置かれています

>D.Matsu様
/usr/java、/usr/tomcat、ともにリンク済みです。
D.Matsu
ベテラン
会議室デビュー日: 2006/12/07
投稿数: 51
投稿日時: 2007-05-14 18:27
引用:

タスマニア三郎さんの書き込み (2007-05-14 17:11) より:
/usr/java、/usr/tomcat、ともにリンク済みです。



ではhttp://localhost:8080/は見えますか?
見えないとしたらtomcatが動作してないのではないかと思いますが。
#ログファイルにエラー内容が書いてあるかも
朝日奈ありす
大ベテラン
会議室デビュー日: 2007/05/02
投稿数: 189
お住まい・勤務地: 最北の地
投稿日時: 2007-05-14 20:29
HelloWorld はどのパッケージに属していますか?

package XXX;です

- HelloWorld は WEB-INF/classes 直下に配置されているのでしょうか?

はい、WEB-INF/classesの直下に置かれています

初歩的なことだけど

/WEB-INF/classes/XXX/HelloWorld.class にあるよね?
タスマニア三郎
会議室デビュー日: 2007/05/10
投稿数: 15
お住まい・勤務地: 馴れ合いの果て
投稿日時: 2007-05-15 09:22
おはようございます

>D.Matsu様
>ではhttp://localhost:8080/は見えますか?
>見えないとしたらtomcatが動作してないのではないかと思いますが。

-http://localhost:8080/は表示されます

>杏様
>初歩的なことだけど
>/WEB-INF/classes/XXX/HelloWorld.class にあるよね?

-はい、あります。

エラーログをみたところ、
org.apache.catalina.startup.Catalina start
情報: Server startup in 3198 ms
java.io.FileNotFoundException: /usr/tomcat/webapps/XXX/WEB-INF/classes/HelloWorld (No such file or directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:106)
at org.apache.catalina.manager.ManagerServlet.copyInternal(ManagerServlet.java:1569)
at org.apache.catalina.manager.ManagerServlet.copy(ManagerServlet.java:1530)
at org.apache.catalina.manager.ManagerServlet.deploy(ManagerServlet.java:811)
at org.apache.catalina.manager.HTMLManagerServlet.deployInternal(HTMLManagerServlet.java:249)
at org.apache.catalina.manager.HTMLManagerServlet.doGet(HTMLManagerServlet.java:96)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228)
at org.apache.catalina.core.StandardContextValve.invoke(StandardConteatxtValve.java:175) org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.ja
va:525)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)
at java.lang.Thread.run(Thread.java:619)

とのエラーが表示されていました。
kowest
会議室デビュー日: 2005/04/18
投稿数: 5
投稿日時: 2007-05-15 09:42
/WEB-INF/classes/XXX/HelloWorld.class
ではなく
/WEB-INF/classes/HelloWorld.class
に探しに行ってますね

以下のようになっていませんか?
<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>HelloWorld</servlet-class>
</servlet>

スキルアップ/キャリアアップ(JOB@IT)