我试图在Tomcat7服务器卡式磁带上的OpenShift上部署一个简单的Java Web应用程序。
我使用默认名称ROOT.war在/ app-root / runtime / dependencies / jbossews / webapps应用程序路径上使用FileZilla进行了sftp,并且复制过程成功结束。
Openshift会自动尝试部署战争,但会发生ZipException(然后,每次我从该应用程序的OpenShift在线控制台手动重启它,即使显示以下消息:"应用程序xxxxxx已重新启动& #34;。)
以下是从我的应用程序的Openshift日志中复制的例外情况:
2017年3月26日上午11:39:00 org.apache.catalina.startup.HostConfig undeploy
信息:取消部署上下文[]
2017年3月26日上午11:39:01 org.apache.catalina.startup.HostConfig deployWAR
信息:部署Web应用程序存档/var/lib/openshift/xxxxxxxxxxxxxxxxxxxxxxxx/app-root/runtime/dependencies/jbossews/webapps/ROOT.war
2017年3月26日上午11:39:01 org.apache.catalina.startup.ContextConfig beforeStart
严重:异常修复docBase for context []
java.util.zip.ZipException:打开zip文件时出错
at java.util.zip.ZipFile.open(Native Method)
在java.util.zip.ZipFile上。
在java.util.zip.ZipFile上。
在java.util.jar.JarFile上。
在java.util.jar.JarFile上。
在sun.net.www.protocol.jar.URLJarFile。
在sun.net.www.protocol.jar.URLJarFile.getJarFile(URLJarFile.java:69)
at sun.net.www.protocol.jar.JarFileFactory.get(JarFileFactory.java:99)
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.validate(ExpandWar.java:220)
at org.apache.catalina.startup.ContextConfig.fixDocBase(ContextConfig.java:732)
at org.apache.catalina.startup.ContextConfig.beforeStart(ContextConfig.java:850)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:376)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
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.start(LifecycleBase.java:147)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:632)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1083)
at org.apache.catalina.startup.HostConfig $ DeployWar.run(HostConfig.java:1880)
at java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:473)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:615)
在java.lang.Thread.run(Thread.java:745)
2017年3月26日上午11:39:01 org.apache.catalina.core.StandardContext resourcesStart
SEVERE:启动静态资源时出错
java.lang.IllegalArgumentException:无效或不可读的WAR文件:打开zip文件时出错
at org.apache.naming.resources.WARDirContext.setDocBase(WARDirContext.java:136)
at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:5089)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5269)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:632)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1083)
at org.apache.catalina.startup.HostConfig $ DeployWar.run(HostConfig.java:1880)
at java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:473)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:615)
在java.lang.Thread.run(Thread.java:745)
2017年3月26日上午11:39:01 org.apache.catalina.core.ContainerBase addChildInternal
SEVERE:ContainerBase.addChild:start:
org.apache.catalina.LifecycleException:无法启动组件[StandardEngine [Catalina] .StandardHost [localhost] .StandardContext []]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:632)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1083)
at org.apache.catalina.startup.HostConfig $ DeployWar.run(HostConfig.java:1880)
浏览网页时,我发现了类似的问题,并检查了他们的答案,但似乎没有任何效果:
我已经检查过war文件,当重命名为.zip时,WinRar正确打开,没有任何问题。
我在复制后检查了服务器中war文件的权限,并将它们设置为777.重新启动服务器但问题仍然存在。
我在那里复制了另一个应用程序的战争,并由OpenShift的tomcat自动部署。
我已将我的war文件发送给同事,该同事可以将其部署在本地Tomcat7服务器上,没有任何问题。
有什么想法吗?提前谢谢!