2013-08-26 188 views
1

我有一个应用程序,使用Maven构建并在eclipse上运行(tomcat运行时),它工作正常。但是当我在tomcat上部署项目的WAR(不使用eclipse)时,它的失败。这个错误是由于我包括一个coustome jar。部署战争时出现Jar问题

堆栈跟踪如下: -

Aug 26, 2013 3:18:16 PM org.apache.catalina.core.StandardContext startInternal 
SEVERE: Error in dependencyCheck 
java.io.IOException: Jar: smartcharging-model.jar 
    at org.apache.catalina.util.ExtensionValidator.validateApplication(ExtensionValidator.java:207) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5256) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.manager.ManagerServlet.start(ManagerServlet.java:1256) 
    at org.apache.catalina.manager.HTMLManagerServlet.start(HTMLManagerServlet.java:714) 
    at org.apache.catalina.manager.HTMLManagerServlet.doPost(HTMLManagerServlet.java:219) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:647) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.apache.catalina.filters.CsrfPreventionFilter.doFilter(CsrfPreventionFilter.java:212) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:611) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
Caused by: java.util.zip.ZipException: invalid distance too far back 
    at java.util.zip.InflaterInputStream.read(Unknown Source) 
    at java.util.zip.ZipInputStream.read(Unknown Source) 
    at java.util.jar.JarInputStream.read(Unknown Source) 
    at java.io.BufferedInputStream.read1(Unknown Source) 
    at java.io.BufferedInputStream.read(Unknown Source) 
    at java.util.jar.JarInputStream.getBytes(Unknown Source) 
    at java.util.jar.JarInputStream.checkManifest(Unknown Source) 
    at java.util.jar.JarInputStream.<init>(Unknown Source) 
    at java.util.jar.JarInputStream.<init>(Unknown Source) 
    at org.apache.catalina.util.ExtensionValidator.getManifest(ExtensionValidator.java:395) 
    at org.apache.catalina.util.ExtensionValidator.validateApplication(ExtensionValidator.java:196) 
    ... 29 more 

Aug 26, 2013 3:18:16 PM org.apache.catalina.core.StandardContext startInternal 
SEVERE: Error getConfigured 
Aug 26, 2013 3:18:16 PM org.apache.catalina.core.StandardContext startInternal 
SEVERE: Context [/Smart-0.0.1-SNAPSHOT] startup failed due to previous errors 
Aug 26, 2013 3:18:16 PM org.apache.catalina.util.LifecycleBase stop 
INFO: The stop() method was called on component [WebappLoader[/Smart-0.0.1-SNAPSHOT]] after stop() had already been called. The second call will be ignored. 

回答

0

即使运行上述所有命令,我仍然遇到问题。截至目前,我已经找到了一种解决方法,即从服务器上部署的目标中删除该JAR文件,然后再次复制它。我认为如此手动压缩JAR解决了这个问题。

+0

你可以从你的pom.xml文件提供maven-war-plugin的配置吗?看来,您在WEB-INF/lib中的一个jar文件已损坏,这可能是由maven-war-plugin执行的错误配置的过滤造成的。 –

0

运行

mvn clean install 

和你的代码再次

+1

我已经试过了。问题是同样的事情正在工作,而我从eclipse运行,但它不工作,否则 –

0

听起来像是你有一个损坏的罐子。您是否曾尝试将其从本地存储库(〜/ .m2 /存储库)中删除?并且

mvn clean package 

再次? eclipse可能不会共享与您用于在命令行中构建war相同的存储库。

0

检查META-INF文件夹中生成的清单文件, 确保'header : value'在同一行中。

0

我有同样的问题,它是由战争文件从Windows到Unix系统传输过程中的编码问题引起的。

对于此任务,我使用WinSCP和“标准”文件传输选项。只要我切换到“二进制”格式,它的工作和战争可以被应用程序服务器读取。