- PR -

struts tomcat log4j

1
投稿者投稿内容
sinh
ベテラン
会議室デビュー日: 2003/01/22
投稿数: 87
投稿日時: 2004-04-01 19:04
お世話になります。

Windows2000、J2SE1.4.2_01、J2EE1.3、Strut1.1、Tomcat4.1.30
を使用して開発を行っているのですが、障害無く動作しているWebアプリで
log4jを使用してログを出したいと思い、

TOMCAT_HOME/webapps/struts_test/WEB-INF/lib/

の下にlog4j-1.2.8.jarを置いたところ、JasperExceptionが発生する
ようになってしまって困っています。

Strutsはログにcommons-loggingを使用しているのでlog4jが
使用できると思ったのですが、どうすればよいでしょうか?
はしもと
大ベテラン
会議室デビュー日: 2003/02/05
投稿数: 182
投稿日時: 2004-04-01 19:47
Log4J の設定ファイルも置かなければログは出ないと思います。

それと、何をすると JasperException が発生して、その詳細は ?
iti
会議室デビュー日: 2003/09/02
投稿数: 3
投稿日時: 2004-04-02 11:12
libにlogg4J.jarを置いても指定しないと使用できないはずです。
ExceptionがLog4J.jarのせいだとすると、
commmons-loggingがJDKのlogパッケージと、
log4Jのどちらを使用するかで、迷ってるんじゃないでしょうか。

classpathが通っている場所に
commons-logging.properties
log4j.properties
を置いてください。
sinh
ベテラン
会議室デビュー日: 2003/01/22
投稿数: 87
投稿日時: 2004-04-07 18:34
返信が遅くなってすいませんです。

はしもとさん:引用: --------------------------------------------------------------

それと、何をすると JasperException が発生して、その詳細は ?
--------------------------------------------------------------------------------

ブラウザでJSPにアクセスをすると画面にスタックトレースが出力されます。以下がその内容です。

スタックトレース--------------------------------------------------------------

org.apache.jasper.JasperException
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:254)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2422)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:163)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:199)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:700)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:584)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)


root cause

javax.servlet.ServletException
at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:536)
at org.apache.jsp.login_jsp._jspService(login_jsp.java:86)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:210)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2422)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:163)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:199)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:700)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:584)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)

--------------------------------------------------------------------------------

itiさん:引用: ------------------------------------------------------------------

classpathが通っている場所に
commons-logging.properties
log4j.properties
を置いてください。
--------------------------------------------------------------------------------
commons-logging.propertiesに以下の設定をして

org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger

本などを見て、以下のようにおきました。

TOMCAT_HOME/webapps/struts_test/WEB-INF/lib/の下にlog4j.jar
TOMCAT_HOME/webapps/struts_test/WEB-INF/classes/の下にlog4j.properties
TOMCAT_HOME/webapps/struts_test/WEB-INF/classes/の下にcommons-logging.properties

ですが設定が反映されず、例外が発生しました。

前にTomcatの4.1.27で試したのですが、そのときも
同様の状況となり、本などを参考に
TOMCAT_HOME/commons/lib/の下にlog4j.jar
TOMCAT_HOME/commons/classesの下にlog4j.propertiesを
置くと、設定が反映されました。
今回の環境で、同様の場所に置くと
Tomcatの起動時に例外が発生して起動しなくなってしまいました。

TomcatのバージョンでStruts、commons-logging、log4jとの
相性みたいのがあるのでしょうか?

おかだ
常連さん
会議室デビュー日: 2004/04/05
投稿数: 20
お住まい・勤務地: 大阪
投稿日時: 2004-04-08 10:07
ちなみに、ほかのexample(struts-example)などでlog4jを
同じ構成同じ設定ファイルを使用した場合
どのような結果が出ますか?
login_jsp.java:86が少し気になりますが。。。
sinh
ベテラン
会議室デビュー日: 2003/01/22
投稿数: 87
投稿日時: 2004-04-08 14:32
解決いたしました。
原因は%JAVA_HOME%\jre\lib\extの下に置いてあったcommons-logging.jarのためでした。

ご迷惑をおかけしました。
1

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