gpt4 book ai didi

java - 使用 Tomcat 进行调试

转载 作者:行者123 更新时间:2023-11-28 23:50:56 24 4
gpt4 key购买 nike

我正在尝试测试我刚刚编写的(基于 Spring 的)WAR,并将其部署到 TOMCAT_HOME/webapps/,然后启动 tomcat。大约一分钟后,很明显 WAR 没有运行(因为它应该使用 ActiveMQ 队列中的消息……但实际上没有)。我查看控制台的标准输出并看到:

INFO: Deploying web application archive Optimizer.war
log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader).
23 [Thread-2] INFO org.apache.camel.spring.handler.CamelNamespaceHandler - OSGi environment not detected.
Jan 19, 2012 10:54:20 AM org.apache.catalina.core.StandardContext startInternal
SEVERE: Error listenerStart
Jan 19, 2012 10:54:20 AM org.apache.catalina.util.SessionIdGenerator createSecureRandom
INFO: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [184] milliseconds.
Jan 19, 2012 10:54:20 AM org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [/Optimizer] startup failed due to previous errors

这是我的 log4j.properties 文件:

log4j.rootLogger=INFO
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d [%c] [%t] (%F:%L) %-5p %c %x - %m%n
log4j.logger.org.milyn=INFO
log4j.logger.org.exolab.castor=INFO
log4j.logger.org.castor.core=INFO
log4j.logger.org.apache.commons.digester=INFO
log4j.logger.org.apache=INFO
log4j.logger.org.springframework=INFO
log4j.logger.com.ibatis=INFO
log4j.logger.java.sql.Connection=INFO
log4j.logger.java.sql.PreparedStatement=INFO
log4j.logger.java.sql.ResultSet=INFO
log4j.logger.java.sql.Statement=INFO

这是我的 web.xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns /j2ee/web-app_2_4.xsd"
version="2.4">

<!-- The display name of this web application -->
<display-name>Optimizer</display-name>

<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/optimizer-config.xml</param-value>
</context-param>

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

我想知道如何让我的应用程序/Tomcat 更详细,这样我就可以看到这里到底发生了什么(请注意,Tomcat 控制台和相应的 catalina.log 是我唯一的调试来源...无法从 Eclipse 工作台运行它,因为没有 main 入口点,只有 web.xml)。

我怀疑 web.xml 或者我的 Spring 配置文件有问题。如果我能在日志/错误消息中获得关于阻止我的应用程序启动的任何类型的指示,我不介意调试我的配置文件。

任何关于开始找出问题所在的想法/提示/建议都非常感谢!提前致谢!

最佳答案

如果需要,您实际上可以从 IDE 中运行整个应用程序,而不是从外部启动 Tomcat。但是,您随后会遇到一个问题,即您要处理 war 文件,而不是处理 .class 文件(在您的工作区中编译)。此外,您也没有测试 Tomcat 是否导致任何部署错误。

我不记得 Tomcat 错误文件是什么,但您还可以在 tomcat/log 目录中查看其他日志文件,它们会提供一些额外信息。

要在 eclispe 中启动 Tomcat,您需要创建一个新的 Java 运行时配置。将主类指定为 org.apache.catalina.startup.Bootstrap程序参数:[-config] 开始VM Args:如您所见,但也许是 -Xmx512m 等...工作目录(如果没记错的话,我通常指向 Tomcat/work 目录)。

您还需要将 Tomcat jar(位于 tomcat/lib 和 tomcat/bin 中)添加到 Bootstrap 条目下的类路径中。

完成后,您应该能够从 Eclipse 中将 tomcat 作为 java 应用程序启动,然后您就可以实际逐步调试确切的过程。

注意:我提供的是内存中的配置信息。我不记得工作区的确切路径。

关于java - 使用 Tomcat 进行调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8929575/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com