- - PR -
tldファイルが見つからない
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2003-07-31 17:46
こんにちは。
件名について解決するためには、どうすればよいか アドバイスをお願い致します。 <現象> 現象は、http://****:8080/TestWeb/sendMessage.jspへアクセスした際、 【org.apache.jasper.JasperException: JSP ファイル "/WEB-INF/struts-bean.tld" が見つかりません】 というメッセージでHTTP Status 500 - エラーとなり、アクセスできない、とったものです。 当方の対応としては、web.xml(EclipsのTestWebパッケージにあるWEB-INFフォルダ 内にあるもの)に下記を追記し、解決を図ろうとしました。 ■web.xmlのコード <web-app> (〜省略) <taglib> <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri> <taglib-location>/WEB-INF/struts-html.tld</taglib-location> </taglib> <taglib> <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri> <taglib-location>/WEB-INF/struts-bean.tld</taglib-location> </taglib> (〜省略) </web-app> ■sendMessageのコード <%@ page contentType="text/html; charset=Shift_JIS" %> <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> (以下省略) しかし、同じ現象が起きてしまいます。 <環境> 環境は、下記の通りです。 ・Eclips2.1.0 ・j2sdk ・tomcat4.0 ・Apach2 ・Struts1.1 ・EasyStruts <TOMCATログ> TOMCATログ上に、下記のMsgがでています。Eclips上の、 web.xmlのエレメントのコーディング順序が違う?といった事でしょうか。。 ちなみに、taglibエレメントは</servlet-mapping>の下に記述し、taglib の後は、 </web-app>で閉じています。書籍等をあたっても、間違っているとは 思えないんですけど。。。(勘違い?) 致命的: Parse Error at line 896 column 11: The content of element type "web-app" must match "(icon?,display-name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,servlet-mapping*,session-config?,mime-mapping*,welcome-file-list?,error-page*,taglib*,resource-env-ref*,resource-ref*,security-constraint*,login-config?,security-role*,env-entry*,ejb-ref*,ejb-local-ref*)". org.xml.sax.SAXParseException: The content of element type "web-app" must match "(icon?,display-name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,servlet-mapping*,session-config?,mime-mapping*,welcome-file-list?,error-page*,taglib*,resource-env-ref*,resource-ref*,security-constraint*,login-config?,security-role*,env-entry*,ejb-ref*,ejb-local-ref*)". どうか宜しくお願い致します。。 |
|
投稿日時: 2003-07-31 17:57
こんにちわ。
<taglib>〜</taglib>の下に icon?,display-name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,servlet-mapping*,session-config?,mime-mapping*,welcome-file-list?,error-page*, 上記エレメントがあったりしませんか? |
|
投稿日時: 2003-08-01 10:01
こんにちわ。
ひとつ気になった点があります。 私の知識不足かもしれませんが、 <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri> という指定はできないのでは?と思っています。 URIって、http://とかftp://とかで始まったような・・・ 解決策としては2つあります。 ■TLDファイルの配置場所 これはいたって簡単です。 @sendMessage.jspと同じパスにstruts-html.tldを配置する AsendMessage.jspに <%@ taglib uri="/struts-html.tld" prefix="XXX" %> と記述する。 ■カスタムタグを登録する @web.xmlにデプロイメント記述子を作成する <taglib> <taglib-uri>http://****:8080/TestWeb/struts-html</taglib-uri> <taglib-location>/WEB-INF/struts-html.tld</taglib-location> </taglib> AsendMessage.jspに <%@ taglib uri="http://****:8080/TestWeb/struts-html" prefix="XXX" %> を記述する。 参考にでもなれば幸いです。 |
|
投稿日時: 2003-08-01 10:09
すろんぬ さま
いえ、ありません。。。 </taglib>直下には</web-app>のみでございます。 逆に、.jspファイルのtaglibディレクトリのパスが違うかも。。修正してみます。 (実行中) ん?違うメッセージが出力されました。 <tomcatログ> org.apache.jasper.JasperException: /sendMessage.jsp(5,0) クラス html をロードできません 解釈すると、htmlクラスは見つけたけど、ロードできないよ〜、って事ですよね。。 コンテナにロードできていない。。う〜ん。。 しばらく悩んでみます。。 |
|
投稿日時: 2003-08-01 10:12
ぐーふぃーさま
レス有難うございます! そうですよね、私も配置場所変えてみよーとおもいました。 他の策も実施してみます。 有難うございました! |
|
投稿日時: 2003-08-01 13:23
こんにちは〜。
<taglib-uri>/WEB-INF/struts-html.tld</taglib-uri> taglib-uri属性がとる値は相対パスまたは絶対パスの値をとれるので これでいけるはずです。 原因は多分別で <web-app>〜</web-app>内に使えない属性などあったりしてませんか? |
|
投稿日時: 2003-08-01 14:23
clapさま
■おっしゃる通り、taglib内では相対&絶対両方効くよーで、 <taglib> <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri> <taglib-location>/WEB-INF/struts-html.tld</taglib-location> </taglib> で、【org.apache.jasper.JasperException: JSP ファイル "/WEB-INF/struts-bean.tld" が見つかりません】は、でなくなりました。 ただ、【org.apache.jasper.JasperException: /sendMessage.jsp(5,0) クラス html をロ ードできません】は、出力されています。。。 ■ご指摘の点、web.xml内の記述ですが、数種類の書籍等と比較しても 特におかしな個所はないように見受けられます(内容は下記参照)。 ■あと1つ気になってるんですけど、Eclips上のweb.xmlファイルと、Tomcatルートフォルダに あるweb.xmlの、関連ってどうなってるのでしょうか? EclipsからTomcatを実行すれば、当然前者を見に行きますよね? Tomcatにあるweb.xmlは無視されると思っています。 ただ、どうもログをみると、両方みにいっているような気がしています。 例えばこのMsgですが Parse Error at line 897 column 11: The content of element type "web-app" must m (省略) どう考えても897ラインもいないんですよね。。これはTomcatフォルダだし。。 ※下記に、web.xmlを転記します。 <web-app> <servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>3</param-value> </init-param> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <taglib> <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri> <taglib-location>/WEB-INF/struts-html.tld</taglib-location> </taglib> <taglib> <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri> <taglib-location>/WEB-INF/struts-bean.tld</taglib-location> </taglib> <taglib> <taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri> <taglib-location>/WEB-INF/struts-logic.tld</taglib-location> </taglib> </web-app> |
1
