Wednesday, May 16, 2012

Tomcat, Maven: executing tomcat7-maven-plugin with war file hangs

update: I ran this with exec-war instead of run-war and got a null pointer which indicates the "project.artifact" file in AbstractExecWarMojo was not set.



java.lang.NullPointerException
at java.io.FileInputStream.<init>(FileInputStream.java:134)
at org.apache.tomcat.maven.plugin.tomcat7.run.AbstractExecWarMojo.execute(AbstractExecWarMojo.java:307)
at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:569)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:539)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
at org.codehaus.classworlds.Launcher.main(Launcher.java:375)


executing tomcat7-maven-plugin from intellij. Compiled to target java 1.6 using java 1.7 compiler.



War file executes in tomcat6 using the tomcat6 plugin. Tomcat7 will execute correctly when not using the war file.



I'm getting no error message. After the line "[INFO] Creating Tomcat server configuration at..." in the console output, nothing happens.



Here's my tomcat7 plugin configuration with dependencies.



   <plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.0-beta-1</version>
<!--tomcat7.version = 7.0.27-->
<configuration>
<port>34140</port>
<path>/${project.build.finalName}</path>
<warFile>****RedirectConfig.war</warFile>
</configuration>
<dependencies>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-core</artifactId>
<version>${tomcat7.version}</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-util</artifactId>
<version>${tomcat7.version}</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-coyote</artifactId>
<version>${tomcat7.version}</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-api</artifactId>
<version>${tomcat7.version}</version>
</dependency>

<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jdbc</artifactId>
<version>${tomcat7.version}</version>
</dependency>

<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-dbcp</artifactId>
<version>${tomcat7.version}</version>
</dependency>

<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-servlet-api</artifactId>
<version>${tomcat7.version}</version>
</dependency>

<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jsp-api</artifactId>
<version>${tomcat7.version}</version>
</dependency>

<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jasper</artifactId>
<version>${tomcat7.version}</version>
</dependency>

<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jasper-el</artifactId>
<version>${tomcat7.version}</version>
</dependency>

<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-el-api</artifactId>
<version>${tomcat7.version}</version>
</dependency>

<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-catalina</artifactId>
<version>${tomcat7.version}</version>
</dependency>

<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-tribes</artifactId>
<version>${tomcat7.version}</version>
</dependency>

<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-catalina-ha</artifactId>
<version>${tomcat7.version}</version>
</dependency>

<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-annotations-api</artifactId>
<version>${tomcat7.version}</version>
</dependency>

<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-juli</artifactId>
<version>${tomcat7.version}</version>
</dependency>

<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-logging-juli</artifactId>
<version>${tomcat7.version}</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-logging-log4j</artifactId>
<version>${tomcat7.version}</version>
</dependency>
</dependencies>
</plugin>


Here's the maven-war-plugin configuration.



    <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.2</version>
<configuration>

<webappDirectory>target</webappDirectory>
<!--<packagingExcludes>WEB-INF/web.xml</packagingExcludes>-->
<warName>****RedirectConfig</warName>
</configuration>
</plugin>


Here's the console output



        "C:\Program Files\Java\jdk1.7.0_01\bin\java" -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:6050,suspend=y,server=n -Djava.security.egd=file:/dev/./urandom -Dclassworlds.conf=C:\Utilities\Maven\apache-maven-2.2.1-bin\apache-maven-2.2.1\bin\m2.conf -Dmaven.home=C:\Utilities\Maven\apache-maven-2.2.1-bin\apache-maven-2.2.1 -Dfile.encoding=UTF-8 -classpath "C:\Utilities\Maven\apache-maven-2.2.1-bin\apache-maven-2.2.1\boot\classworlds-1.1.jar;C:\Program Files (x86)\JetBrains\IntelliJ IDEA 11.0.2\lib\idea_rt.jar" org.codehaus.classworlds.Launcher --no-plugin-registry --fail-fast --no-plugin-updates --strict-checksums --update-snapshots -f C:\****\*****\dev\trunk\****RedirectConfig\pom.xml org.apache.tomcat.maven:tomcat7-maven-plugin:2.0-beta-1:run-war

<snip/>
[INFO] [war:war {execution: default-war}]
[INFO] Packaging webapp
[INFO] Assembling webapp [****RedirectConfig] in [C:\****\*****\dev\trunk\VIPSRedirectConfig\target]
[INFO] Processing war project
[INFO] Copying webapp resources [C:\****\*****\dev\trunk\****RedirectConfig\src\main\webapp]
[INFO] Webapp assembled in [534 msecs]
[INFO] Building war: C:\****\*****\dev\trunk\****RedirectConfig\target\****RedirectConfig.war
[INFO] WEB-INF\web.xml already added, skipping
[INFO] [tomcat7:run-war {execution: default-cli}]
[INFO] Running war on http://localhost:34140/****RedirectConfig
[INFO] Creating Tomcat server configuration at C:\****\******\dev\trunk\****RedirectConfig\target\tomcat




No comments:

Post a Comment