- PR -

TOMCATプロジェクトを作成するとTOMCATが起動しない

1
投稿者投稿内容
take
大ベテラン
会議室デビュー日: 2004/08/13
投稿数: 177
お住まい・勤務地: 沖縄県北部
投稿日時: 2005-06-10 18:23
いつもお世話になります。開発環境:windowsXP(HOME) j2sdk1.4.2_06、TOMCAT4.1.31、TOMCATプラグインsysdeoV3、ECLIPSE3.0.1です。

タイトルのとおりなのですが、TOMCATをインストールし、http://localhost:8080/でちゃんとアクセスできることを確認とったうえで、ECLIPSEのTOMCATプラグインをインストールして、ECLIPSEからもTOMCATの起動と停止、再起動ができることを確認しました。

問題は新規にTOMCATプロジェクトを作成すると、ECLIPSEからTOMCATを起動することができなくなってしまうのです。例外は以下のとおりです。

Catalina.start using C:\Program Files\Apache Group\Tomcat 4.1\conf\server.xml: java.io.UTFDataFormatException: Invalid byte 1 of 1-byte UTF-8 sequence.
java.io.UTFDataFormatException: Invalid byte 1 of 1-byte UTF-8 sequence.
at org.apache.xerces.impl.io.UTF8Reader.invalidByte(Unknown Source)
at org.apache.xerces.impl.io.UTF8Reader.read(Unknown Source)
at org.apache.xerces.impl.XMLEntityScanner.load(Unknown Source)
at org.apache.xerces.impl.XMLEntityScanner.scanLiteral(Unknown Source)
at org.apache.xerces.impl.XMLScanner.scanAttributeValue(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanAttribute(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.commons.digester.Digester.parse(Digester.java:1548)
at org.apache.catalina.startup.Catalina.start(Catalina.java:420)
at org.apache.catalina.startup.Catalina.execute(Catalina.java:350)
at org.apache.catalina.startup.Catalina.process(Catalina.java:129)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:156)


試しに作成したTOMCATプロジェクトを削除してみると、元のとおりちゃんと起動できるようになるのです。いろいろ調べてみてもどうも解決できません。どなたかご存知の方がいらっしゃいましたらよろしくお願いします。
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2005-06-10 18:34
server.xmlに問題があると言っているので、とりあえずプロジェクト作成後にserver.xmlが
どうなっているか確認してみてはどうでしょうか。エラーを見る限りでは、2バイト文字が
非UTF-8で入ってしまっているような気がするのですが。
take
大ベテラン
会議室デビュー日: 2004/08/13
投稿数: 177
お住まい・勤務地: 沖縄県北部
投稿日時: 2005-06-12 22:44
ukさん、ご返答ありがとうございます。ご指摘どおりserver.xmlを確認してみたところ、プロジェクト作成時に追加される1行に問題があるように思いました。server.xmlの下から数えて50行目に、

<Context path="/TestTestTest" reloadable="true" docBase="C:\Documents and Settings\takeshi\デスクトップ\eclipse-SDK-3.0.1-win32\eclipse\workspace\TestTestTest" workDir="C:\Documents and Settings\takeshi\デスクトップ\eclipse-SDK-3.0.1-win32\eclipse\workspace\TestTestTest\work\org\apache\jsp" />

という1行ができてました。この中にukさんのおっしゃる非UTF-8があるとしても、自分にはどれがどうなのか調べてみても今の段階ではわかりそうにありません。
何とかヒントでもいただけるとありがたいです。よろしくお願いします。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2005-06-12 23:31
<?xml version="1.0" encoding="エンコーディング名"?>
のエンコーディング名とファイル自体のエンコーディングが一致していますか?

ファイルがShift_JISで保存されていて、
xml宣言のエンコーディングがUTF-8になっていたりしませんか?
take
大ベテラン
会議室デビュー日: 2004/08/13
投稿数: 177
お住まい・勤務地: 沖縄県北部
投稿日時: 2005-06-13 10:35
おはようございます。かつのりさんご返答ありがとうございます。おっしゃるようにエンコーディングの宣言を確認しようとしたところ、server.xmlにはエンコーディングの宣言がありませんでした。TOMCATをインストールした状態とあまり変わってないと思うので、多分最初から無かったんでしょうね。windowsなのでやはりSHIFT-JISなのでしょうか?エンコーディングに関してもぜんぜん勉強不足なのでこれから調べるのですが、プロジェクト作成時にできる一行があったら起動できないということはその一行だけ違うエンコードで書かれてることもあるのでしょうか?
今あるserver.xmlの一番上の行にエンコーディングの宣言を手動で書き足しても問題ないでしょうか?

質問ばかりで申し訳ないです。これから調べるつもりですが、ご存知でしたらご教示いただけるとありがたいです。
ぬべたそ
ベテラン
会議室デビュー日: 2003/12/18
投稿数: 72
投稿日時: 2005-06-13 11:22
こんにちは。
Eclipseをデスクトップに配置して、workspaceもそこにあるようですが、c:直下に置き換えて、server.xmlのworkDirもその新しいディレクトリを指すようにしたらどうなりますか?
server.xmlをバックアップしてエンコーディングを変更するなり、いろいろ試してみてはいかがでしょうか?
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2005-06-13 12:26
XMLファイルにエンコーディング指定がないとすると、UTF-8として処理されるはずです。
そこに、シフトJISで値が書き込まれているためにエラーになっているのでしょう。
server.xmlに、

<?xml version="1.0" encoding="Shift_JIS"?>

と書き足してみてください。
また、ぬべたそさんが書かれているように、Eclipseのインストールディレクトリを、他の
場所、つまり2バイト文字がディレクトリ名やファイル名に使われない場所にしてみるという
方法もあります。特にフリーのツールでは、2バイト文字の対応が甘い場合が多いので、問題が
起こりにくい環境にしておいた方がいいでしょう。
take
大ベテラン
会議室デビュー日: 2004/08/13
投稿数: 177
お住まい・勤務地: 沖縄県北部
投稿日時: 2005-06-14 15:13
皆様、ご返答ありがとうございます。返事が遅れてしまってすみません。

皆様のおっしゃることをすべてやってみると解決できました!
cドライブ直下にインストールし、XML宣言でSHIFT-JISにするとたちまち立ち上がるようになったので、試しに追加したXMLの宣言部分を削除してみても立ち上がりました。ECLIPSEのインストールをデスクトップにしてしまったことが一番よくなかったみたいですねY(>_<、)Y

皆様のおかげで解決でき、かなり勉強になりました。ありがとうございます。またよろしくお願いします。
1

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