※ ChatGPTを利用し、要約された質問です(原文:struts1.3.10でエラー)
struts1.3.10でエラー
このQ&Aのポイント
struts1.3.10でエラーが発生し、ActionResources_ja_JP.propertiesファイルが見つかりません。解決方法を教えてください。
Win7およびeclipse 3.6.1でstruts1.3.10を使用していますが、HTTPステータス404エラーが発生しています。ActionResources_ja_JP.propertiesファイルが見つからないためです。対処方法を教えてください。
struts1.3.10を使用している際にActionResources_ja_JP.propertiesファイルが見つからないエラーが出力されます。対処方法をご教示ください。
宜しくお願いします。
環境
Win7
eclipse 3.6.1
struts 1.3.10
tomcat 6.0
とあるサイトにあるサンプル(自分とは違うバージョンの環境)を、自分の環境において、そこからstrutsを勉強していこうとしてます。
最初の呼び出し画面index.jspは表示されますが、そこから次の呼び出し先(strutsのAction継承サーブレット)で
HTTPステータス 404 - サーブレット Action が利用できません
と出ます。
原因を探ろうとeclipseのコンソールを見たところ、
以下のようにエラーが出ていました。
-----------------------------------------------------------------
・
・
・
情報: 設定記述子 HLgame.xml を配備します
2011/10/31 15:02:35 org.apache.struts.action.ActionServlet initChain
情報: Loading chain catalog from jar:file:/D:/eclipse/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/HLgame/WEB-INF/lib/struts-core-1.3.10.jar!/org/apache/struts/chain/chain-config.xml
2011/10/31 15:02:35 org.apache.struts.util.PropertyMessageResources loadLocale
警告: Resource org/apache/struts/action/ActionResources_ja_JP.properties Not Found.
2011/10/31 15:02:35 org.apache.catalina.core.ApplicationContext log
致命的: Action: null
java.lang.NullPointerException at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.skipChar(XMLEntityScanner.java:1414)
at com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.skipSeparator(XMLDTDScannerImpl.java:2057)
・
・
・
2011/10/31 15:02:35 org.apache.catalina.core.ApplicationContext log
情報: サーブレット Action を利用不可能にマークします
2011/10/31 15:02:35 org.apache.catalina.core.StandardContext loadOnStartup
致命的: サーブレット /HLgame がload()例外を投げました
javax.servlet.UnavailableException
at org.apache.struts.action.ActionServlet.initModulePlugIns(ActionServlet.java:880)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:359)
・
・
・
-------------------------------------------------------------
上記のうち、一番最初の致命的の箇所、
警告: Resource org/apache/struts/action/ActionResources_ja_JP.properties Not Found.
について調べてみたのですが、
/HLgame/WebContent/WEB-INF/lib/以下に置いた、struts-core-1.3.10.jarを、
解凍してみたところ、
struts-core-1.3.10\org\apache\struts\actionフォルダがあり、そこに、
ActionResources_ja.propertiesはあったのですが、
ActionResources_ja_JP.propertiesはありませんでした。
struts-config.xmlの <message-resources parameter="・・・"/>
は・・・の部分をいろいろ書き換えて試したものの、いずれも、エラー内容は上記のままでした。
他にどこを調べてよいかわからず困っています。
ActionResources_ja_JP.properties についてググってみましたが、参考になるものはありませんでした。
対処方法を考えていただけるとありがたく、
よろしくお願いいたします。
お礼
ご回答誠にありがとうございます。 > あなたのすべきことは、「警告」ではなく「致命的」の対処です。 ----------------------------------------------------- 致命的: Action: null java.lang.NullPointerException at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.skipChar(XMLEntityScanner.java:1414) ----------------------------------------------------- について、調べてみました。 結果、tiles-defs.xmlの書き方ミスでした。 今回のサンプルプログラムでは、tiles-defs.xmlが不要にもかかわらず、 struts-config.xmlではtiles-defs.xmlを指定していたので、 とりあえず自己判断で、中身が<xml><!doctype>宣言箇所だけというtiles-defs.xmlを作成し、置いてみたのですが、 宣言のみでは足らず、<tiles-definitions>以下の設定が必要だった為、エラーが発生していたようです。正しい書き方にtiles-defs.xmlを作成し直したところ、「警告」「致命的」の表示自体がなくなり、プログラムが正常動作しました。 ただ、tiles-defs.xml要らないからと、 struts-config.xmlの、tiles-defs.xml指定箇所を削除してしまうと、今度は以下のエラーが起きてしまうため、 -------------------------------------------------- 致命的: サーブレット Action のServlet.service()が例外を投げました java.lang.ClassCastException: org.apache.struts.tiles.TilesUtilImpl cannot be cast to org.apache.struts.tiles.TilesUtilStrutsImpl -------------------------------------------------- tiles-defs.xmlは実際は不要でも、上記のように置く必要があるようです。 tiles-defs.xmlの、書き加えて直した<tiles-definitions>以下の内容ですが、 サンプルでは全く呼び込んでいない為、実際にはないjspなどを指定しても、 エラーは起きず、プログラムも正常に動作しています。 この辺の、tiles-defs.xmlのあり方がいまいち、?な感じですが、 とりあえず、このまま勉強していけば、わかってくることも出てくるかもしれません。 しょっぱなからすつまづいていた、エラーの見方に関してご指摘していただいたおかげで、大変助かりました。 本当に有難うございました。