ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Java質問&情報提供サイトコミュのweb.xmlのlistenerのエラーについて

  • mixiチェック
  • このエントリーをはてなブックマークに追加
はじめまして。ゆきと申します。

現在Springの学習をしております。
参考にしているのは、『SpringによるWebアプリケーションスーパーサンプル』という
本をベースに学習しています。

今回ご相談したいのは、web.xmlの<listener>に
org.springframework.web.context.ContextLoaderListener
を指定するとTomcat起動時にコンテキストの起動が失敗してしまう。というエラーが起こってしまいます。

この参考書の中にあるサンプルの中の1つに、
ログイン画面からIDとpasswordを入力し、DBに問い合わせて値が合致すれば、
loginSuccess画面へ遷移する。というものをEclipseで作成しました。
そのときに、web.xmlに
org.springframework.web.context.ContextLoaderListener
を指定しているのですが、うまく通ってくれません。
<listener>をコメントすると起動はしてくれます。

環境は
OS WindowsXP Professional
JDK1.6.0_01
Spring2.0
Tomcat5.5
Eclipse3.3.2
です。

やってみたことは、
---------------------------------------------------------------------
・workspaceのlogを確認(何も出ていませんでした。)
・workspaceにあるプロジェクトのwork配下のファイルを削除し、Eclipseを再起動。
・Tomcatプロジェクトのコンテキスト定義を除去→更新
・<listener>に指定しているクラスを
 ContextLoaderServletやRequestContextListener
 などに変更して起動してみる。(←起動しました。)
・プロジェクトをクリーン
・参考書付属のCDに入っているプロジェクトをそのまま移植。(←起動しませんでした。)
・参考書に訂正がないか発売元サイトを調べる。
 (このプロジェクトに関しては何もありませんでした。)
・Eclipse3.2.0に移植して起動してみる。(←起動しませんでした。)
---------------------------------------------------------------------
などをやってみましたが、エラーになりました。

ちなみに参考書に記載されている環境は、
OS Windows XP Professional SP2
Spring1.2.8
JDK1.5.0.06
Tomcat5.0.28
です。

以下web.xmlの中身です。
------------------------------------------------------------------
<?xml version="1.0" encoding="Shift_JIS" ?>
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>Shift_JIS</param-value>
</init-param>
</filter>

<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<servlet>
<servlet-name>shopping3-3</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>shopping3-3</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
</web-app>

ファイル構成などは参考書に記載されている通りに作成しました。
web.xmlやapplicationContext.xml、shopping3-3-servlet.xmlはWEB-INF直下に
置いてあります。
--------------------------------------------------------------------
Eclipseのエラーログの一部です。

情報: XML検証は無効です
2008/05/16 12:45:22 org.apache.struts.util.PropertyMessageResources <init>
情報: Initializing, config='org.apache.struts.util.LocalStrings', returnNull=true
2008/05/16 12:45:22 org.apache.struts.util.PropertyMessageResources <init>
情報: Initializing, config='org.apache.struts.action.ActionResources', returnNull=true
log4j:WARN No appenders could be found for logger (org.apache.commons.digester.Digester.sax).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN No appenders could be found for logger (org.apache.commons.digester.Digester.sax).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN No appenders could be found for logger (org.apache.commons.digester.Digester.sax).
log4j:WARN Please initialize the log4j system properly.
2008/05/16 12:45:28 org.apache.catalina.core.StandardContext start
2008/05/16 12:45:28 org.apache.catalina.core.StandardContext start
致命的: Error listenerStart
2008/05/16 12:45:28 org.apache.catalina.core.StandardContext start
致命的: 以前のエラーのためにコンテキストの起動が失敗しました [/spring]
log4j:WARN No appenders could be found for logger (org.apache.commons.digester.Digester.sax).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN No appenders could be found for logger (org.apache.commons.digester.Digester.sax).
log4j:WARN Please initialize the log4j system properly.
2008/05/16 12:45:30 org.apache.catalina.core.ApplicationContext log
情報: org.apache.webapp.balancer.BalancerFilter: init(): ruleChain: [org.apache.webapp.balancer.RuleChain: [org.apache.webapp.balancer.rules.URLStringMatchRule: Target string: News / Redirect URL: http://www.cnn.com], [org.apache.webapp.balancer.rules.RequestParameterRule: Target param name: paramName / Target param value: paramValue / Redirect URL: http://www.yahoo.com], [org.apache.webapp.balancer.rules.AcceptEverythingRule: Redirect URL: http://jakarta.apache.org]]
2008/05/16 12:45:30 org.apache.catalina.core.ApplicationContext log
情報: ContextListener: contextInitialized()
2008/05/16 12:45:30 org.apache.catalina.core.ApplicationContext log
情報: SessionListener: contextInitialized()
2008/05/16 12:45:30 org.apache.catalina.core.ApplicationContext log
情報: ContextListener: contextInitialized()
2008/05/16 12:45:30 org.apache.catalina.core.ApplicationContext log
情報: SessionListener: contextInitialized()
log4j:WARN No appenders could be found for logger (org.apache.commons.digester.Digester.sax).
log4j:WARN Please initialize the log4j system properly.
2008/05/16 12:45:31 org.apache.struts.util.PropertyMessageResources <init>

何かお気づきの点などがございましたら、ご教授いただけますと助かります。
よろしくお願い致します。

コメント(8)

はずしているかもしれませんが。。

WEB-INFの下にapplicationContext.htmlを置かれていますか?

あるいは<listner>の前に↓を書く必要あるのかなぁ、と。
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
す、すみません。typoありました。

×:WEB-INFの下にapplicationContext.htmlを置かれていますか?
○:WEB-INFの下にapplicationContext.xmlを置かれていますか?
まえのさん

アドバイスありがとうございます。
applicationContext.xmlはWEB-INFの直下に置いてあります。
また、<context-param>を置いて実行してみましたが、やはり起動してくれませんでした。
ContextLoaderListenerクラスをAPIで調べたところ、Contextファイルの指定がない場合はデフォルトでapplicationContext.xmlを探すようになっているそうです。
これだけやってできないとなると、もしかしたら原因が環境設定にあるのかもしれないので、引き続き調べてみます。
もし、原因が判明しましたら、自己レスでご報告させていただきます。

ご親切で丁寧な回答を下さいましてありがとうございました。
自己レスです。

ソースをもう一度じっくり読み直したところ、
applicationContext.xml内のbeanを参照しているところで、
大文字小文字のスペルミスが1箇所ありました。

初歩的なミスで申し訳ございませんあせあせ(飛び散る汗)あせあせ(飛び散る汗)

何度も読み返していたので、大丈夫。という思い込みがありましたバッド(下向き矢印)
これからはもっと気をつけて読み直そうと思います。

かなり時間をロスしてしまいましたが、おかげさまで
どこでミスするとエラーログが出ないのか、出るところはどこか、
web.xmlの詳細はどうなっているのか、など勉強になりました。

まえのさん、ご協力、ご指摘ありがとうございました!!
解決出来たようでなによりです。

applicatonContext.xml内のbean要素の箇所でスペルミスがあったんですね(^^;

でもでも、それだったら、他のbeanでrefしていた場合、別の例外が吹っ飛びそうな気もしたり。

ともあれ、おめでとうございます!!
まえのさん

>別の例外が
そうなんですょね。なんか飛ぶものだと思ったんですけど、
なんでか飛んでこなかったです(^^;

なにはともあれ正常に動いてくれたので、よかったです(^^)
本当にありがとうございました!

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Java質問&情報提供サイト 更新情報

Java質問&情報提供サイトのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング