在罐子和战争中META INF内容不同?

时间:2015-02-09 18:02:45

标签: java maven tomcat7

我正在尝试使用appassember插件使用heroku howto创建嵌入式tomcat,使用tomcat7和oracle-java-7。

我已多次使用这些说明来转换正常工作的war文件。

当前项目是一个spring-batch-admin控制台,下面有一个单独的跑步者。我不是代码所有者,也不是那么熟悉spring-batch,但似乎很高兴被放入'普通'/ var / lib / tomcat7 / webapps。

使用自动生成的shell脚本(sh ./target/bin/webapp)启动时,出现以下错误:

ERROR - DispatcherServlet          - Context initialization failed
org.springframework.beans.factory.parsing.BeanDefinitionParsingException:    Configuration problem: Failed to import bean definitions from URL location    [classpath*:/META-INF/servlet/*.xml]
Offending resource: URL    [jar:file:/vagrant/pairbulkdata_app/downloadjob_batch/target/repo/org/springframework/batch/spring-batch-admin-resources/1.0.0.M1/spring-batch-admin-resources- 1.0.0.M1.jar!/org/springframework/batch/admin/web/resources/servlet-config.xml];   nested exception is   org.springframework.beans.factory.parsing.BeanDefinitionParsingException:   Configuration problem: Failed to import bean definitions from relative location   [../batch/module-context.xml]
Offending resource: URL [jar:file:/vagrant/pairbulkdata_app/downloadjob_batch/target/repo/org/springframework/batch/pbdDownloadXmlConfig/1.0.0.M1/pbdDownloadXmlConfig-1.0.0.M1.jar!/META-INF/servlet/service-context.xml]; nested exception is org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from URL [jar:file:/vagrant/pairbulkdata_app/downloadjob_batch/target/repo/org/springframework/batch/pbdDownloadXmlConfig/1.0.0.M1/pbdDownloadXmlConfig-1.0.0.M1.jar!/META-INF/servlet/../batch/module-context.xml]; nested exception is java.io.FileNotFoundException: JAR entry META-INF/servlet/../batch/module-context.xml not found in /vagrant/pairbulkdata_app/downloadjob_batch/target/repo/org/springframework/batch/pbdDownloadXmlConfig/1.0.0.M1/pbdDownloadXmlConfig-1.0.0.M1.jar
    at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:68)

这似乎意味着它没有找到servlet-config.xml文件。

有趣的是,当我查看新的myApp.jar与旧的myApp.war文件时,META_INF文件的内容已被移动。 原战的相关部分是:

\META-INF\maven
\WEB-INF\classes\META-INF\stuff-to-launch-the-servlet

在胖罐子里,我得到了:

\META-INF
|-----> maven
|-----> stff-to-launch-the-servlet

和WEB-INF似乎根本没有出现。

因为它无法找到的课程是在那些被移动的东西中,我正朝着那个兔子洞走去。

为什么jar文件在不同的路径中包含META-INF?原始配置是在文件系统上,因为这不是一个单一的,应该从CLASSPATH中获取,对吗?

0 个答案:

没有答案