- PR -

急にtomcatがおかしくなりました

1
投稿者投稿内容
きりん
会議室デビュー日: 2004/08/17
投稿数: 16
投稿日時: 2004-08-23 23:19
EclipseからTomcatを起動させていたのですが、
tomcatの再起動をEclipseで行った際に、

2004/08/23 22:53:20 org.apache.commons.modeler.Registry loadRegistry
情報: Loading registry information
2004/08/23 22:53:20 org.apache.commons.modeler.Registry getRegistry
情報: Creating new Registry instance
2004/08/23 22:53:23 org.apache.commons.modeler.Registry getServer
情報: Creating MBeanServer
2004/08/23 22:53:28 org.apache.coyote.http11.Http11Protocol init
情報: Coyote HTTP/1.1をポート8080で初期化します
サービス Tomcat-Standalone を起動します
Apache Tomcat/4.1.24
2004/08/23 22:53:37 org.apache.commons.digester.Digester error
致命的: Parse Error at line 5 column 16: Document root element "web-app", must match DOCTYPE root "null".
org.xml.sax.SAXParseException: Document root element "web-app", must match DOCTYPE root "null".

という致命的なエラーが発生してしまいました。web.xmlのどこかに空白があるのか
と探しましたが見つからなく、タグも<web-app>〜</web-app>としっかりと閉じています。
実はtomcatは起動しています。ただし、httpで指定したアドレスにアクセスできなく
なりました。
このエラーが出る以前はきちんと動作しており、直前にweb.xml,server.xmlを変更して
もいないのです。

一応、下にweb.xmlの内容を記述します。原因ご存知の方がおられましたらよろしくお願いいたします。

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-app_2_4.xsd"
version="2.4">
</web-app>
ちょま吉
大ベテラン
会議室デビュー日: 2004/08/04
投稿数: 112
投稿日時: 2004-08-23 23:45
コード:
<?xml version="1.0" encoding="ISO-8859-1"?>



コード:
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-app_2_4.xsd" 
version="2.4">


の間に下記のようなものが必要で、これがないと動かなかった覚えがあります。
どういう意味のものかは、勉強不足の為わかりませんが、、、。
コード:
<!DOCTYPE web-app
     PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">

S-52
会議室デビュー日: 2004/03/02
投稿数: 9
お住まい・勤務地: 東京都
投稿日時: 2004-08-24 01:13
こんばんは〜

Servlet API 2.4を使用する場合はDOCTYPEの代わりに、
きりん様が記載されているようにweb-app要素にXMLスキーマとして宣言します。
但しこれが使用可能なTomcatはバージョン「5」からです。

きりん様のエラーログ中に「Apache Tomcat/4.1.24」とあるのですが、
・Tomcat5を使用する予定であればEclipseの設定(tomcatプラグイン?)を確認してみて下さい。
・Tomcat4.1を使用する予定であれば、ちょま吉様ご指摘の通り、DOCTYPE宣言を入れ、web-app要素の属性を削除する必要があります。

解りにくい説明だったかもしれません。
ちょま吉
大ベテラン
会議室デビュー日: 2004/08/04
投稿数: 112
投稿日時: 2004-08-24 13:44
引用:

S-52さんの書き込み (2004-08-24 01:13) より:
こんばんは〜

Servlet API 2.4を使用する場合はDOCTYPEの代わりに、
きりん様が記載されているようにweb-app要素にXMLスキーマとして宣言します。
但しこれが使用可能なTomcatはバージョン「5」からです。

きりん様のエラーログ中に「Apache Tomcat/4.1.24」とあるのですが、
・Tomcat5を使用する予定であればEclipseの設定(tomcatプラグイン?)を確認してみて下さい。
・Tomcat4.1を使用する予定であれば、ちょま吉様ご指摘の通り、DOCTYPE宣言を入れ、web-app要素の属性を削除する必要があります。

解りにくい説明だったかもしれません。


ServletAPI2.4では、web.xmlの記述が変わるんですね。
勉強になります。
きりん
会議室デビュー日: 2004/08/17
投稿数: 16
投稿日時: 2004-08-25 23:06
返信遅れて申し訳ありませんでした。
ありがとうございます。問題を解決することができました。
XMLのHPを辿って勉強してみたのですが、なかなか理解できず^^;、
思い切ってtomcat5をインストールしたところ上手くいきました。
4.1系に比べると動作に不安があるということを聞いていたので導入を
控えていたのですが、いざ使ってみると、web.xmlの変更も簡単で、
僕にとってはそれだけでも十分に有難いです。
これでTomcat恐怖性症候群から来る不眠症も解消されるとうれしいのですが^^;。
1

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