Java – maven-tomcat7-plugin generates a corrupted executable jar
•
Java
I encountered a problem when using the maven tomcat7 plug-in to generate a jar archive with an embedded tomcat7 instance This is my POM XML fragment:
<plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <path>/${project.artifactId}</path> </configuration> <executions> <execution> <phase>package</phase> <goals> <goal>exec-war</goal> </goals> </execution> </executions> </plugin>
My project uses war packaging The jar file of Tomcat containing the war archive of the project is generated, but when I try to run it, I receive an error:
java.io.FileNotFoundException: /home/rafal.wrzeszcz/workspace/Mailer/.extract/webapps/mailer.war at java.util.zip.ZipFile.open(Native Method) at java.util.zip.ZipFile.<init>(ZipFile.java:214) at java.util.zip.ZipFile.<init>(ZipFile.java:144) at java.util.jar.JarFile.<init>(JarFile.java:153) at java.util.jar.JarFile.<init>(JarFile.java:90) at sun.net.www.protocol.jar.URLJarFile.<init>(URLJarFile.java:93) at sun.net.www.protocol.jar.URLJarFile.getJarFile(URLJarFile.java:69) at sun.net.www.protocol.jar.JarFileFactory.get(JarFileFactory.java:88) at sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:122) at sun.net.www.protocol.jar.JarURLConnection.getJarFile(JarURLConnection.java:89) at org.apache.catalina.startup.ExpandWar.expand(ExpandWar.java:113) at org.apache.catalina.startup.ContextConfig.fixDocBase(ContextConfig.java:722) at org.apache.catalina.startup.ContextConfig.init(ContextConfig.java:843) at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:387) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:402) at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:110) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139) at org.apache.catalina.core.ContainerBase$startChild.call(ContainerBase.java:1559) at org.apache.catalina.core.ContainerBase$startChild.call(ContainerBase.java:1549) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:722)
I tried plug-in version 2.1 - the same results
This is the directory tree extracted by executing jar:
$ls -AR .extract .extract: conf logs temp webapps work .extract/conf: .extract/logs: access_log.2014-03-07 .extract/temp: .extract/webapps: .extract/work: Tomcat .extract/work/Tomcat: localhost .extract/work/Tomcat/localhost: mailer .extract/work/Tomcat/localhost/mailer:
(you can see the files that have not been copied)
Solution
Remove path from configuration And use Tomcat plug-in version 2.1 Making these two changes in my POM file fixes similar problems for me I also cleaned up $M2 before running again_ Repo / org / Apache folder
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
二维码