访问Tomcat中的详细日志

时间:2012-05-04 18:08:40

标签: java eclipse tomcat logging

在Eclipse中执行一个小应用程序时,我从通过Eclipse运行的Tomcat服务器收到Http Status 500错误...

HTTP Status 500 -   

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

type Exception report  

message   

description The server encountered an internal error () that prevented it from fulfilling this request.  

exception   

java.lang.NullPointerException  
    org.apache.struts2.impl.StrutsActionProxy.getErrorMessage   (StrutsActionProxy.java:69)  
    com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:185)  
    org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:63)  
    org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39)  
    com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:58)  
    org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:500)  
    org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:434)  


 note The full stack trace of the root cause is available in the Apache Tomcat/7.0.8 logs. 

来自服务器的此消息表明错误是由“NullPointerException”引起的。最后一行表示“Apache Tomcat / 7.0.8日志中提供了完整堆栈跟踪”。 我检查了在我的工作区中创建的日志($ {catalina.base}设置为我工作区中的文件夹),但日志不提供有关“NullPointerException”的任何详细信息。日志中唯一存在的是......

0:0:0:0:0:0:0:1 - - [03/May/2012:15:19:16 +0530] "GET /KurniawanChap02Struts/ HTTP/1.1" 500 1789

我也尝试过增加“日志级别”,但即便如此也无济于事。 如何访问服务器的详细日志?

2 个答案:

答案 0 :(得分:0)

当我使用不同版本的Apache Commons时,我遇到了类似的错误。为了获得有关这些错误的更多详细信息,我将Tomcat的默认loggind更改为log4j。您可以在Apache Tomcat 7 (7.0.27) - Logging in Tomcat

中查看详细说明

这是我正在使用的log4j的xml示例:

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
  <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
    <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern" value="%d %-5p (%c.java:%L).%M - %m%n" />
    </layout>
  </appender>
  <!-- CATALINA -->
  <logger name="org.apache.catalina.session">
    <level value="INFO" />
  </logger>
  <!-- TOMCAT -->
  </logger>
  <logger name="org.apache.jasper.compiler">
     <level value="INFO" />
  </logger>
  <!-- COMMONS -->
  <logger name="org.apache.commons.digester">
     <level value="INFO" />
  </logger>
  <root>
    <priority value="TRACE" />
    <appender-ref ref="STDOUT" />
  </root>
</log4j:configuration>

我希望这可以帮助你。

答案 1 :(得分:0)

我遇到了同样的问题。我删除了 properties-&gt; Java Build Path-&gt; Projects 中引用的未使用项目。它显示缺少xyz(项目名称)。 我删除了xyz。

有时您可以检查属性 - > Java Build Path-&gt;库是否缺少任何jar。如果是这样,您可以从类路径中添加该jar。