- PR -

struts起動時に/WEB-INF/struts-html.tld" が見つかりませんとなってしまう。

投稿者投稿内容
kuma
大ベテラン
会議室デビュー日: 2004/02/25
投稿数: 110
投稿日時: 2008-03-16 00:52
書籍でwarの解凍先はどうなっているのですか?

%CATALINA_HOME%/webapps/STRUTS_SAMPLE/1-1
ですか?それとも
%CATALINA_HOME%/webapps/1-1
ですか?

私が先に書いたコンテキストルートについては理解されていますか?
server.xmlはどうなっていますか?
tom30
会議室デビュー日: 2008/03/13
投稿数: 3
投稿日時: 2008-03-17 14:45
こんにちわ。

引用:

未記入さんの書き込み (2008-03-15 23:40) より:
質問内容:
 warファイルの解凍先は、必ずwebappsフォルダの配下に設置して
 使用しなければならないのでしょうか?



ここだけ回答します。
Tomcat 6 は触ったことがないですが、これまでとさほど変わらないと思うので考え方のみになります。

基本的には Tomcat のインストールした場所にできる webapps に war ファイルを解凍するのが「デフォルト」になります。(パスの設定等は不要です)

ただし、様々な要因から違う場所に war を解凍したい場合がありますが、このときは server.xml や conf フォルダ配下にあるコンテキスト等の設定ファイルにインストール先のパスを設定する必要が出てきます。
未記入
会議室デビュー日: 2008/03/12
投稿数: 4
投稿日時: 2008-03-19 00:12
佐伯です。


"/WEB-INF/struts-html.tld" が見つかりませんとなるのは、
C:\\Program Files\\Apache Software Foundation\\Tomcat 6.0\\webapps\\STRUTS_SAMPLE\\1-1\\
WEB-INFのweb.xmlが見えていないのが原因です。

C:\\Program Files\\Apache Software Foundation\\Tomcat 6.0\\webapps\\STRUTS_SAMPLE\\1-1\\WEB-INF\\web.xml
を参照するようにするには、どうしたらいいですか?


>書籍でwarの解凍先はどうなっているのですか?
>%CATALINA_HOME%/webapps/STRUTS_SAMPLE/1-1
>ですか?それとも
>%CATALINA_HOME%/webapps/1-1
>ですか?
>私が先に書いたコンテキストルートについては理解されていますか?
>server.xmlはどうなっていますか?
 書籍でwarの解凍先は%CATALINA_HOME%/webapps/1-1 となっています。
 %CATALINA_HOME%/webapps/STRUTS_SAMPLE/1-1 は、自分設定です。


>私が先に書いたコンテキストルートについては理解されていますか?
 理解してない為、下記を参考にしました。
    Javaの道 > オープンソース > Tomcat −13.コンテキスト.xml
    http://www.javaroad.jp/opensource/js_tomcat13.htm



■調査結果:
コンテキスト.xmlを下記のように作成して調査しましたが
org.apache.jasper.JasperException: JSP ファイル "/WEB-INF/struts-html.tld" が見つかりません
となります。
コンテキスト.xml、を書き換えて、TOMCATの再起動を行いました。


C:\\Program Files\\Apache Software Foundation\\Tomcat 6.0\\conf\\Catalina\\localhost\\STRUTS_SAMPLE.xml
[設定内容]-----
<Context path="/STRUTS_SAMPLE/1-1"
docBase="C:\\Program Files\\Apache Software Foundation\\Tomcat 6.0\\webapps\\STRUTS_SAMPLE\\1-1"
reloadable="false"/>
----------

上記の設定でも
C:\\Program Files\\Apache Software Foundation\\Tomcat 6.0\\webapps\\STRUTS_SAMPLE配下に
WEB-INFを作成すると
C:\\Program Files\\Apache Software Foundation\\Tomcat 6.0\\webapps\\STRUTS_SAMPLE\\1-1\\WEB-INF\\web.xml
ではなく、
C:\\Program Files\\Apache Software Foundation\\Tomcat 6.0\\webapps\\STRUTS_SAMPLE\\WEB-INF\\web.xmlを
参照してしまいます。


■コンテキストで編集した内容(web.xml)が見れてないか?調査
struts-html.tldを使用しない、JSPは、動作しました。


JSPファイル先頭のtaglib uriがコンテキストで編集した内容(web.xml)を見てないのでしょうか?
 <%@page contentType="text/html; charset=Shift_JIS" %>
 <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
 <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>

kuma
大ベテラン
会議室デビュー日: 2004/02/25
投稿数: 110
投稿日時: 2008-03-19 08:09
引用:

未記入さんの書き込み (2008-03-19 00:12) より:
佐伯です。


"/WEB-INF/struts-html.tld" が見つかりませんとなるのは、
C:\\Program Files\\Apache Software Foundation\\Tomcat 6.0\\webapps\\STRUTS_SAMPLE\\1-1\\
WEB-INFのweb.xmlが見えていないのが原因です。

C:\\Program Files\\Apache Software Foundation\\Tomcat 6.0\\webapps\\STRUTS_SAMPLE\\1-1\\WEB-INF\\web.xml
を参照するようにするには、どうしたらいいですか?


>書籍でwarの解凍先はどうなっているのですか?
>%CATALINA_HOME%/webapps/STRUTS_SAMPLE/1-1
>ですか?それとも
>%CATALINA_HOME%/webapps/1-1
>ですか?
>私が先に書いたコンテキストルートについては理解されていますか?
>server.xmlはどうなっていますか?
 書籍でwarの解凍先は%CATALINA_HOME%/webapps/1-1 となっています。
 %CATALINA_HOME%/webapps/STRUTS_SAMPLE/1-1 は、自分設定です。


>私が先に書いたコンテキストルートについては理解されていますか?
 理解してない為、下記を参考にしました。
    Javaの道 > オープンソース > Tomcat −13.コンテキスト.xml
    http://www.javaroad.jp/opensource/js_tomcat13.htm



■調査結果:
コンテキスト.xmlを下記のように作成して調査しましたが
org.apache.jasper.JasperException: JSP ファイル "/WEB-INF/struts-html.tld" が見つかりません
となります。
コンテキスト.xml、を書き換えて、TOMCATの再起動を行いました。


C:\\Program Files\\Apache Software Foundation\\Tomcat 6.0\\conf\\Catalina\\localhost\\STRUTS_SAMPLE.xml
[設定内容]-----
<Context path="/STRUTS_SAMPLE/1-1"
docBase="C:\\Program Files\\Apache Software Foundation\\Tomcat 6.0\\webapps\\STRUTS_SAMPLE\\1-1"
reloadable="false"/>
----------




この方法ならば
C:\\Program Files\\Apache Software Foundation\\Tomcat 6.0\\conf\\Catalina\\localhost\\STRUTS_SAMPLE.xml
ではなく
C:\\Program Files\\Apache Software Foundation\\Tomcat 6.0\\conf\\Catalina\\localhost\\STRUTS_SAMPLE\\1-1.xml
としてください。

HostのautoDeployがtrueになっていれば
META-INF/context.xml
に同様の記述をしておけばいいでしょう。
朝日奈 ありす
ベテラン
会議室デビュー日: 2007/10/28
投稿数: 57
お住まい・勤務地: 北の都
投稿日時: 2008-03-25 00:01
思わしくない答しかないようなので、ちょっと助言。

struts-1.2.x.jarの構成は
├org.apache.struts〜
├META-INF
│├tlds

のtldsに struts-html.tldなどが入っています。

コード:
struts-html.tld

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib>
<tlibversion>1.2</tlibversion>
<jspversion>1.1</jspversion>
<shortname>html</shortname>
<uri>http://struts.apache.org/tags-html</uri>
(以下略)




と上記のようにuriが定義されています。

jspに設定する場合は
コード:
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>



となるわけです。

コード:
<taglib>
   <taglib-uri>/tags/struts-logic</taglib-uri>
   <taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
</taglib>
<taglib>
   <taglib-uri>JSPで宣言するパス</taglib-uri>
   <taglib-location>/で始まる絶対パス(実際の設置場所)</taglib-location>
</taglib>



初歩的な方法では
$apps-root/<application-name>/WEB-INFの構成でなければ tomcatはWEB-INFを認識せずにデフォルトのweb.xmlで起動されるのです。


saeki
会議室デビュー日: 2008/10/24
投稿数: 1
投稿日時: 2008-10-24 22:31
さえきです。

質問内容が解決しないままだった為、記載します。

調査してみましたがやはり、サンプルは動作しなくエラーとなってしまい
TOMCATの再インストール後、でも結果は、かわらず
OS(XP)再インストールまで実施しました。

再インストール後、サンプルは、動作しました。

まずは、基本そのままを実践して
それから、応用するようにします。

今まで回答をくださった方、ありがとうございました。

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