Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java maven-tomcat7-plugin产生损坏的可执行JAR_Java_Maven_Jar_Tomcat7_War - Fatal编程技术网

Java maven-tomcat7-plugin产生损坏的可执行JAR

Java maven-tomcat7-plugin产生损坏的可执行JAR,java,maven,jar,tomcat7,war,Java,Maven,Jar,Tomcat7,War,我在使用Maven Tomcat7插件生成带有嵌入式Tomcat7实例的JAR归档文件时遇到问题。这是我的pom.xml代码片段: org.apache.tomcat.maven tomcat7 maven插件 2.2 /${project.artifactId} 包裹 执行战争 我的项目使用war打包。生成了包含项目的Tomcat with WAR存档的JAR文件,但是当我尝试运行它时,我发现错误: java.io.FileNotFoundException:/home/rafal.wrz

我在使用Maven Tomcat7插件生成带有嵌入式Tomcat7实例的JAR归档文件时遇到问题。这是我的
pom.xml
代码片段:


org.apache.tomcat.maven
tomcat7 maven插件
2.2
/${project.artifactId}
包裹
执行战争
我的项目使用
war
打包。生成了包含项目的Tomcat with WAR存档的JAR文件,但是当我尝试运行它时,我发现错误:

java.io.FileNotFoundException:/home/rafal.wrzeszcz/workspace/Mailer/.extract/webapps/Mailer.war
位于java.util.zip.ZipFile.open(本机方法)
位于java.util.zip.ZipFile。(ZipFile.java:214)
位于java.util.zip.ZipFile(ZipFile.java:144)
位于java.util.jar.JarFile。(JarFile.java:153)
位于java.util.jar.JarFile。(JarFile.java:90)
位于sun.net.www.protocol.jar.URLJarFile.(URLJarFile.java:93)
位于sun.net.www.protocol.jar.URLJarFile.getJarFile(URLJarFile.java:69)
位于sun.net.www.protocol.jar.JarFileFactory.get(JarFileFactory.java:88)
位于sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:122)
位于sun.net.www.protocol.jar.JarURLConnection.getJarFile(JarURLConnection.java:89)
位于org.apache.catalina.startup.ExpandWar.expand(ExpandWar.java:113)
位于org.apache.catalina.startup.ContextConfig.fixDocBase(ContextConfig.java:722)
位于org.apache.catalina.startup.ContextConfig.init(ContextConfig.java:843)
位于org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:387)
在org.apache.catalina.util.LifecycleSupport.FireLifecycleSupport(LifecycleSupport.java:119)上
位于org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
位于org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:402)
位于org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:110)
位于org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139)
位于org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
位于org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
位于java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
在java.util.concurrent.FutureTask.run(FutureTask.java:166)中
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
运行(Thread.java:722)
我尝试了插件版本
2.1
——同样的结果

这是通过执行JAR提取的目录树:

$ls-AR.extract
.摘录:
conf日志临时webapps工作
.extract/conf:
.摘录/日志:
访问日志2014-03-07
.提取/温度:
.摘录/网络应用程序:
.摘录/工作:
雄猫
.extract/work/Tomcat:
本地服务器
.extract/work/Tomcat/localhost:
梅勒
.extract/work/Tomcat/localhost/mailer:

(您可以看到没有复制任何文件)

从配置中删除路径。并使用2.1版本的tomcat插件。在我的pom文件中进行这两个更改修复了一个类似的问题。
在重新运行之前,我还清理了
$M2\u REPO/org/apache
文件夹。

这确实是tomcat7 maven插件2.2版中的一个错误:


使用2.1版或等待2.3版发布。

当我注册旧目录
.extract/
时,由上一个
java-jar xx war.jar
创建, 没关系。
我使用的是2.0版,我想其他版本也可以。

您是否只使用packaging=war尝试过exec war?块不应该放在块里面吗?@mattb:我的项目确实使用打包
war
。使用
exec-war-only
会得到类似的结果:
线程“main”java.lang中出现异常。异常:致命:无法创建目录:.extract/webapps
@sasankad:不,它不是,配置可以是每次执行,也可以是插件,不管你把它放在哪里,它只是附加到MOJO属性。但是只是为了检查我是否这样做了,结果是一样的。您是在运行命令行还是在ide中?命令行,有什么区别?