Tomcatの初期index画面が起動しない
久しぶりに自宅の端末でサーブレットを組もうと思い
Tomcatのバージョンが5.5だったので6.0に入れ替えようと思いました。
まずは前の5.5を消して、6.0をダウンロードしてインストール。現在のバージョンは6.0.18です。
インストールしていつものindex画面(http://localhost:8080)を起動しようとしたらレスポンスが返ってきません。
Tomcatの「log」フォルダの中にある「catalina.YYYY-MM-DD.log」を見てみたら
2009/04/12 0:16:02 org.apache.naming.NamingContext lookup 警告: 参照の解決中に予測しない例外が発生しました java.io.UnsupportedEncodingException: cp932 at sun.nio.cs.StreamDecoder.forInputStreamReader(Unknown Source) at java.io.InputStreamReader.<init>(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.createReader(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.setEncoding(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanXMLDeclOrTextDecl(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$XMLDeclDriver.next(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source) at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source) at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1663) at org.apache.catalina.users.MemoryUserDatabase.open(MemoryUserDatabase.java:402) at org.apache.catalina.users.MemoryUserDatabaseFactory.getObjectInstance(MemoryUserDatabaseFactory.java:103) at org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:140) at javax.naming.spi.NamingManager.getObjectInstance(Unknown Source) at org.apache.naming.NamingContext.lookup(NamingContext.java:793) at org.apache.naming.NamingContext.lookup(NamingContext.java:140) at org.apache.naming.NamingContextBindingsEnumeration.nextElementInternal(NamingContextBindingsEnumeration.java:113) at org.apache.naming.NamingContextBindingsEnumeration.next(NamingContextBindingsEnumeration.java:71) at org.apache.catalina.mbeans.GlobalResourcesLifecycleListener.createMBeans(GlobalResourcesLifecycleListener.java:137) at org.apache.catalina.mbeans.GlobalResourcesLifecycleListener.createMBeans(GlobalResourcesLifecycleListener.java:109) at org.apache.catalina.mbeans.GlobalResourcesLifecycleListener.lifecycleEvent(GlobalResourcesLifecycleListener.java:81) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117) at org.apache.catalina.core.StandardServer.start(StandardServer.java:703) at org.apache.catalina.startup.Catalina.start(Catalina.java:578) 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.start(Bootstrap.java:288) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
なんとエンコーディングがおかしいよ的なエラーが発生していました。
調べてみたら「conf」フォルダの中にある「tomcat-users.xml」のエンコーディングがおかしい。
このxmlファイルだけエンコーディングだけが「cp932」でした。
そこでこのファイルのエンコーディングを他のxmlファイルに合わせて「utf-8」変更。
<?xml version='1.0' encoding='cp932'?>
↓↓↓↓↓
<?xml version='1.0' encoding='utf-8'?>
これで再起動してみたら無事にいつもの画面が起動しました。
いやはやちょっとハマりました(^▽^;)