2

我有一个 Maven 项目,我在 Eclipse 中使用 Tomcat 7 进行调试。问题是,当我对 pom.xml 文件进行最小更改时,例如更改 Maven 插件的版本或添加配置属性,服务器不再正常启动。我改变什么并不重要。当我使用“Debug As”启动服务器时,Apache Click 和 Shiro 不再启动,访问 localhost 会导致 Tomcat 出现 404 消息。有趣的是,即使我撤消更改,问题仍然存在。唯一有帮助的是整个项目的 GIT -> Replace With 命令。

编辑:我发现即使我没有更改 pom.xml 中的任何内容并且只运行 Maven -> Update Project 我也有问题。

这是一切正常时更改前的日志文件:

Nov 15, 2012 10:28:10 AM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jdk1.7.0\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files\Java\jdk1.7.0\jre\bin;C:/Program Files/Java/jdk1.7.0/bin/../jre/bin/client;C:/Program Files/Java/jdk1.7.0/bin/../jre/bin;C:/Program Files/Java/jdk1.7.0/bin/../jre/lib/i386;C:\Program Files\Java\jdk1.7.0\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\apache-maven-3.0.4\bin;C:\Program Files\Java\jdk1.7.0\bin;C:\Program Files\Eclipse JEE Indigo;;.
Nov 15, 2012 10:28:12 AM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:testproject' did not find a matching property.
Nov 15, 2012 10:28:12 AM org.apache.coyote.AbstractProtocolHandler init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
Nov 15, 2012 10:28:12 AM org.apache.coyote.AbstractProtocolHandler init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
Nov 15, 2012 10:28:12 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 2201 ms
Nov 15, 2012 10:28:12 AM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Nov 15, 2012 10:28:12 AM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.12
Nov 15, 2012 10:28:13 AM org.apache.catalina.loader.WebappClassLoader validateJarFile
INFO: validateJarFile(D:\Data\Programming\Eclipse Workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\testproject\WEB-INF\lib\servlet-api-1.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
Nov 15, 2012 10:28:13 AM org.apache.catalina.loader.WebappClassLoader validateJarFile
INFO: validateJarFile(D:\Data\Programming\Eclipse Workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\testproject\WEB-INF\lib\servlet-api.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Nov 15, 2012 10:28:13 AM org.apache.catalina.core.ApplicationContext log
INFO: Initializing Shiro environment
[Click] [info ] ***  Initializing Click 2.3.0 in development mode  ***
[Click] [info ] initialized LogService: org.apache.click.service.ConsoleLogService
[Click] [info ] found jar: file:/D:/Data/Programming/Eclipse%20Workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/testproject/WEB-INF/lib/click-nodeps-2.3.0.jar
[Click] [info ] Click 2.3.0 initialized in development mode
Nov 15, 2012 10:28:14 AM org.apache.coyote.AbstractProtocolHandler start
INFO: Starting ProtocolHandler ["http-bio-8080"]
Nov 15, 2012 10:28:14 AM org.apache.coyote.AbstractProtocolHandler start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Nov 15, 2012 10:28:14 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 2076 ms
[Click] [info ] handleRequest:  /index.htm - 57 ms

这是对 pom 文件进行最小更改后的日志:

Nov 15, 2012 10:25:23 AM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jdk1.7.0\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files\Java\jdk1.7.0\jre\bin;C:/Program Files/Java/jdk1.7.0/bin/../jre/bin/client;C:/Program Files/Java/jdk1.7.0/bin/../jre/bin;C:/Program Files/Java/jdk1.7.0/bin/../jre/lib/i386;C:\Program Files\Java\jdk1.7.0\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\apache-maven-3.0.4\bin;C:\Program Files\Java\jdk1.7.0\bin;C:\Program Files\Eclipse JEE Indigo;;.
Nov 15, 2012 10:25:24 AM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:testproject' did not find a matching property.
Nov 15, 2012 10:25:24 AM org.apache.coyote.AbstractProtocolHandler init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
Nov 15, 2012 10:25:24 AM org.apache.coyote.AbstractProtocolHandler init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
Nov 15, 2012 10:25:24 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 570 ms
Nov 15, 2012 10:25:24 AM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Nov 15, 2012 10:25:24 AM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.12
Nov 15, 2012 10:25:39 AM org.apache.coyote.AbstractProtocolHandler start
INFO: Starting ProtocolHandler ["http-bio-8080"]
Nov 15, 2012 10:25:39 AM org.apache.coyote.AbstractProtocolHandler start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Nov 15, 2012 10:25:39 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 14905 ms

谁能解释一下这里发生了什么?我很感谢任何提示!

4

1 回答 1

0

我在 Maven 中使用 Tomcat6,我在 Eclipse 也遇到了类似的问题。有时看起来 Tomcat 卡住了,对我配置的项目完全视而不见。

当这件事发生时,我尝试这个步骤,总是测试其中一个是否已经解决了我的问题。

  1. Maven -> 项目更新
  2. F5 结束项目(通常在此时工作)
  3. 清洁 Tomcat
  4. 清理项目(项目>清理)
  5. 删除项目(服务器上的右键 > 添加和删除),保存并再次添加。

你的怎么样server.xml?您的项目是 Web 应用程序吗?

不幸的是,我不知道为什么会出现这种问题,但它看起来更像是 Tomcat 的缓存问题,而不是 Maven 的问题。无论如何,这是一个每天花费我很多时间的问题。

于 2013-03-26T05:01:58.093 回答