- PR -

Web.xmlの設定について(初心者)

投稿者投稿内容
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2005-04-22 16:03
アプリケーションサーバにサンプルの Webアプリケーションがついてますよね?
それはまず動くと思いますので、そちらとの違いをくらべてみるのはいかがでしょう。
No鶴瓶 NoLife
常連さん
会議室デビュー日: 2005/01/28
投稿数: 48
投稿日時: 2005-04-22 16:04
classファイルの位置が悪いのではないでしょうか?

Tomcatですと、

%TOMCAT_HOME%
--webapps
----people
------WEB-INF
--------classes

の配下にパッケージ構造でクラスファイルを
配置する必要があるかと思います。

※一度、ディレクトリ構造を教えていただけると助かります。



[ メッセージ編集済み 編集者: 未記入 編集日時 2005-04-22 16:09 ]
ドラ
常連さん
会議室デビュー日: 2004/06/24
投稿数: 25
投稿日時: 2005-04-22 16:19
>classファイルの位置が悪いのではないでしょうか?
その位置については問題ないです。

ディレクトリ構造は
c:
--jspAndServlet
----people
----JSPファイルとWeb.xml
-------WEB-INF
----------class
----------lib
----------src

-------work
----------org
となっております。

サンプルのウェブアプリケーションを今動かしているのですが、動かない状態です。
No鶴瓶 NoLife
常連さん
会議室デビュー日: 2005/01/28
投稿数: 48
投稿日時: 2005-04-22 16:24
--jspAndServlet
----people
----JSPファイルとWeb.xml
-------WEB-INF
----------class
----------lib
----------src

-------work
----------org

若干おかしな所があります。
(1)web.xmlはWEB-INF配下に配置してください。
(2)classではなくclassesです。
ドラ
常連さん
会議室デビュー日: 2004/06/24
投稿数: 25
投稿日時: 2005-04-22 16:37
>(1)web.xmlはWEB-INF配下に配置してください。
配置いたしました。しかし、以前404がでます。
TOMCATの再起動なども致しましたが、駄目なようです。

>(2)classではなくclassesです。
すみません、記述ミスです。申し訳ございませんでした。
Mash
会議室デビュー日: 2003/02/19
投稿数: 1
投稿日時: 2005-04-22 16:43
気になったのですが、
web.xmlの1文字目が大文字になっているのは有効なのでしょうか?
それとも単にスペルミスなのでしょうか?
(株)ぽち
ぬし
会議室デビュー日: 2002/09/10
投稿数: 376
投稿日時: 2005-04-22 16:44
まず大前提的な確認なのですが、people配下のhtmlファイルなどは
正常に閲覧できますか?
ロス
常連さん
会議室デビュー日: 2005/03/25
投稿数: 26
投稿日時: 2005-04-22 16:45
Tomcatということですので、以下の前提だとします。

web.xmlの内容
***************************************************************************
<servlet>
<servlet-name>サーブレット名(任意)</servlet-name>
<servlet-class>サーブレットクラス名(パスからのクラス名)</servlet-file>
・・・
</servlest>

<servlet-mapping>
<servlet-name>サーブレット名(上で指定した名前)</servlet-name>
<url-pattern>パターン名(任意)</url-pattern>
</servlet-mapping>
***************************************************************************

コンテキストパス
***************************************************************************
people
***************************************************************************

form
***************************************************************************
<form action="http://localhost:8080/people/パターン名" method="POST">
***************************************************************************

上記のように、すべての対応を取ってみてください。
その結果はどうなりますでしょうか?

■説明
<servlet>で名前を指定して、<servlet-mapping>でどんな文字列がサーブレットを指しているのかを指定しているだけですょ。

ex) 有名どころでStrutsの場合は
  サーブレット名:action
  サーブレットクラス:org.apache.struts.action.ActionServlet
  URLパターン:*.do
  ですね^^

  自作サーブレットですと、
  サーブレット名:myservlet
  サーブレットクラス:xx.xx.xx.MyServlet
  URLパターン:/myservlet
  とかでしょうか・・・

最後に、formやurlしていでサーブレットに行き着くためには、
1.http://localhost:8080/people/パターン名
  http://localhost:8080/people/xxxx.do (Struts例)
  http://localhost:8080/people/myservlet (自作例)
2.http://localhost:8080/people/サーブレットクラス名

でたどり着けるはずです。

もし、これでだめなようなら、warファイルの中にServletクラスがあるかどうか
探してみたほうがいいですね^^;
(↑この場合はなにか例外が出ているはずです。もしあれば、教えて下さい。)

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