2

I have a Maven project that I debug with Tomcat 7 within Eclipse. The problem is, when I make a minimal change in the pom.xml file, e.g. change the version of a Maven plugin or adding a configuration property, the server does not start properly anymore. It really does not matter what I change. When I start the server with "Debug As", Apache Click and Shiro don't start anymore and accessing localhost leads to a 404 message by Tomcat. The funny thing is, the problem persists even when I undo the change. The only thing that helps is a GIT -> Replace With command of the whole project.

Edit: I found out that even if I don't change anything in the pom.xml and just run Maven -> Update Project I have the issue.

Here is the log file before the change when everything works fine:

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

And this is the log after a minimal change to the pom file:

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

Can anybody explain me what is happening here? I'm thankful for any tipps!

gizmodus
  • 188
  • 1
  • 2
  • 10
  • Can you perform a diff on the two builds? – Olivier.Roger Nov 15 '12 at 12:24
  • What is a diff? I found out that the problem lies in Maven which overwrites some configurations when I run Maven -> Update Project. See http://stackoverflow.com/questions/13397202/eclipse-change-webapp-folder-in-maven-pom-xml-file – gizmodus Nov 15 '12 at 12:42
  • In computing, diff is a file comparison utility that outputs the differences between two files. It is typically used to show the changes between one version of a file and a former version of the same file (source: http://en.wikipedia.org/wiki/Diff). Using it you would have seen that the configuration files were changed. – Olivier.Roger Nov 15 '12 at 12:51
  • 1
    Hey, thanks Olivier. Actually that is how I found out where the problem was. I performed Git -> Compare With of the whole project. – gizmodus Nov 15 '12 at 12:54

1 Answers1

0

I'm using Tomcat6 with Maven and I have a similar problem at Eclipse. Sometimes looks like Tomcat stucks and stay completely blind with my configured project.

When this thing happens I try this steps, always testing if one of then already resolved my problem.

  1. Maven -> Project update
  2. F5 over the project (ussualy works at this point)
  3. Clean the Tomcat
  4. Clean the project (Project > Clean)
  5. Removes the project (Right button over the server > Add and Remove), save and add it again.

How it's your server.xml? Is it your project a web application?

Unfortunately I don't know why this kind of problem occur, but it looks like much more a problem with the Tomcat's cache then with Maven at all. Anyway, it's a problem that takes me a lot of time each day.

Pmt
  • 1,122
  • 3
  • 13
  • 27