Java 无法从Ubuntu 16.04中的TOMCAT 8访问部署到docker映像的war文件

Java 无法从Ubuntu 16.04中的TOMCAT 8访问部署到docker映像的war文件,java,ubuntu,docker,tomcat8,Java,Ubuntu,Docker,Tomcat8,我的Docker文件 # Pull base image FROM tomcat:8-jre8 # Maintainer MAINTAINER "Ravindu <rav@info.com"> # Copy to images tomcat path ADD /mobile.war /usr/local/tomcat/webapps/ 19-Mar-2017 07:33:11.517 SEVERE [localhost-startStop-1] org.apache

我的Docker文件

# Pull base image
  FROM tomcat:8-jre8

# Maintainer
  MAINTAINER "Ravindu <rav@info.com">

# Copy to images tomcat path
  ADD /mobile.war /usr/local/tomcat/webapps/
19-Mar-2017 07:33:11.517 SEVERE [localhost-startStop-1] org.apache.catalina.core.ContainerBase.addChildInternal ContainerBase.addChild: start: 
 org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/mobile]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:753)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:729)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:940)
    at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1816)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.webresources.StandardRoot@3ec80848]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162)
    at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4969)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5099)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
    ... 10 more
Caused by: org.apache.catalina.LifecycleException: Failed to initialize component [org.apache.catalina.webresources.JarResourceSet@1c19c6e4]
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:135)
    at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:707)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
    ... 13 more
Caused by: java.lang.IllegalArgumentException: java.util.zip.ZipException: zip file is empty
    at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:113)
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
    ... 16 more
Caused by: java.util.zip.ZipException: zip file is empty
    at java.util.zip.ZipFile.open(Native Method)
    at java.util.zip.ZipFile.<init>(ZipFile.java:219)
    at java.util.zip.ZipFile.<init>(ZipFile.java:149)
    at java.util.jar.JarFile.<init>(JarFile.java:166)
    at java.util.jar.JarFile.<init>(JarFile.java:103)
    at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:110)
    ... 17 more

19-Mar-2017 07:33:11.519 SEVERE [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Error deploying web application archive /usr/local/tomcat/webapps/mobile.war
 java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/mobile]]
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:757)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:729)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:940)
    at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1816)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
#拉基本图像
来自tomcat:8-jre8
#维护者

维护人员“Ravindu你能检查一下mobile.war在复制到容器时是否损坏了吗?我看到你提到你可以在主机上提取它,但可能整个文件没有被正确复制


使用docker exec-it容器名称bash进入您的容器,然后转到
/usr/local/tomcat/webapps/
并检查
jar xvf mobile.war

在这种情况下可能有两个问题:

  • 在容器中复制像
    *.war、*.zip、.*.tar.gz等文件的最佳方法不是使用
    ADD
    ,而是必须使用
    copy
    ,因为
    copy
    ADD
    有一点不同。当使用
    ADD
    时,它会将文件以提取模式放在图像中。如果是在这些
    .war>中的任何一个,.zip,.*.tar.gz
    ,如果使用
    COPY
    ,那么它只需像
    cp
    命令一样在图像中进行复制。因此,最佳做法是对这些类型的文件使用
    COPY
    ,而不用担心会损坏它
  • 正如您在注释
    “bash:jar:command not found”
    中提到的,可能是您的java内部容器未在
    $PATH
    变量中设置,或者
    java\u HOME
    没有适当的权限

  • 希望这会有所帮助。谢谢!

    您确定WAR文件已实际复制到容器中吗?您正在使用
    /mobile.WAR
    作为本地WAR文件-您确定此文件存在于主机系统的根文件夹中吗?您确定不想改为使用
    /mobile.WAR
    吗?我可以在目录中看到我的mobile.WAR文件tainer。它的提取没有任何问题!你能试着改变tomcat版本,比如“FROM-tomcat:8.0.20-jre8”。不确定它是否会有帮助,但是尝试一下也没什么疯狂的。非常感谢@SanketD!但是它没有解决!同样的错误仍然存在!在容器中运行它会抛出“bash:jar:command Not found”“错!你能试着删除java、tomcat和你的自定义映像,然后重建它吗?你是说tomcat的基本docker映像吗?如果是这样的话,请在发布此问题之前早点尝试!没有进步!谢谢你的回答!我认为ADD可以做的不仅仅是复制。添加副本并不能解决问题。这个问题可能与你的第二点有关。将进行更多调试并返回!伟大的给你更多的提示。在将其放入docker之前,请尝试在物理主机上运行
    mobile.war
    。你可以确定到底是什么造成了战争还是码头工人的问题?问题似乎出在码头工人身上!它在物理主机中运行良好!在您的容器中添加
    JAVA/jdk/jre
    ,并在
    中添加
    JAVA\u HOME
    。bash\u profile
    然后在启动tomcat之前验证
    javac
    。我想这个问题与JAVA有关,并且为JAVA dir提供适当的权限。谢谢!问题当然出在我的本地机器java版本上。我在我的AWS linux机器中执行了相同的过程,它工作起来没有任何问题。谢谢你的帮助!
    WARNING: Error loading config file:/home/ravindu/.docker/config.json - stat /home/ravindu/.docker/config.json: permission denied
    Using CATALINA_BASE:   /usr/local/tomcat
    Using CATALINA_HOME:   /usr/local/tomcat
    Using CATALINA_TMPDIR: /usr/local/tomcat/temp
    Using JRE_HOME:        /usr/lib/jvm/java-8-openjdk-amd64/jre
    Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
    22-Mar-2017 10:50:17.386 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version:        Apache Tomcat/8.0.42
    22-Mar-2017 10:50:17.395 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built:          Mar 8 2017 19:58:16 UTC
    22-Mar-2017 10:50:17.395 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server number:         8.0.42.0
    22-Mar-2017 10:50:17.395 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name:               Linux
    22-Mar-2017 10:50:17.395 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version:            4.4.0-66-generic
    22-Mar-2017 10:50:17.395 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture:          amd64
    22-Mar-2017 10:50:17.395 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home:             /usr/lib/jvm/java-8-openjdk-amd64/jre
    22-Mar-2017 10:50:17.395 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version:           1.8.0_121-8u121-b13-1~bpo8+1-b13
    22-Mar-2017 10:50:17.396 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor:            Oracle Corporation
    22-Mar-2017 10:50:17.396 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE:         /usr/local/tomcat
    22-Mar-2017 10:50:17.396 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME:         /usr/local/tomcat
    22-Mar-2017 10:50:17.396 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties
    22-Mar-2017 10:50:17.396 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
    22-Mar-2017 10:50:17.396 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
    22-Mar-2017 10:50:17.396 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
    22-Mar-2017 10:50:17.396 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.endorsed.dirs=/usr/local/tomcat/endorsed
    22-Mar-2017 10:50:17.396 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/usr/local/tomcat
    22-Mar-2017 10:50:17.396 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/usr/local/tomcat
    22-Mar-2017 10:50:17.397 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/usr/local/tomcat/temp
    22-Mar-2017 10:50:17.397 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded APR based Apache Tomcat Native library 1.2.12 using APR version 1.5.1.
    22-Mar-2017 10:50:17.397 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
    22-Mar-2017 10:50:17.445 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized (OpenSSL 1.1.0e  16 Feb 2017)
    22-Mar-2017 10:50:17.915 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-apr-8080"]
    22-Mar-2017 10:50:17.939 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["ajp-apr-8009"]
    22-Mar-2017 10:50:17.940 INFO [main] org.apache.catalina.startup.Catalina.load Initialization processed in 2425 ms
    22-Mar-2017 10:50:18.034 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service Catalina
    22-Mar-2017 10:50:18.034 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.0.42
    22-Mar-2017 10:50:18.131 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive /usr/local/tomcat/webapps/mobile.war
    22-Mar-2017 10:50:19.556 SEVERE [localhost-startStop-1] org.apache.catalina.core.ContainerBase.addChildInternal ContainerBase.addChild: start: 
     org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/mobile]]
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:753)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:729)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:940)
        at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1816)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
    Caused by: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.webresources.StandardRoot@3954f4bc]
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162)
        at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4969)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5099)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
        ... 10 more
    Caused by: org.apache.catalina.LifecycleException: Failed to initialize component [org.apache.catalina.webresources.JarResourceSet@3b4859b1]
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:135)
        at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:707)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
        ... 13 more
    Caused by: java.lang.IllegalArgumentException: java.util.zip.ZipException: zip file is empty
        at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:113)
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
        ... 16 more
    Caused by: java.util.zip.ZipException: zip file is empty
        at java.util.zip.ZipFile.open(Native Method)
        at java.util.zip.ZipFile.<init>(ZipFile.java:219)
        at java.util.zip.ZipFile.<init>(ZipFile.java:149)
        at java.util.jar.JarFile.<init>(JarFile.java:166)
        at java.util.jar.JarFile.<init>(JarFile.java:103)
        at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.initInternal(AbstractSingleArchiveResourceSet.java:110)
        ... 17 more
    
    22-Mar-2017 10:50:19.597 SEVERE [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Error deploying web application archive /usr/local/tomcat/webapps/mobile.war
     java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/mobile]]
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:757)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:729)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717)
        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:940)
        at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1816)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
    
    22-Mar-2017 10:50:19.618 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive /usr/local/tomcat/webapps/mobile.war has finished in 1,467 ms
    22-Mar-2017 10:50:19.633 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /usr/local/tomcat/webapps/host-manager
    22-Mar-2017 10:50:20.542 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /usr/local/tomcat/webapps/host-manager has finished in 909 ms
    22-Mar-2017 10:50:20.543 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /usr/local/tomcat/webapps/docs
    22-Mar-2017 10:50:20.595 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /usr/local/tomcat/webapps/docs has finished in 52 ms
    22-Mar-2017 10:50:20.596 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /usr/local/tomcat/webapps/manager
    22-Mar-2017 10:50:20.632 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /usr/local/tomcat/webapps/manager has finished in 36 ms
    22-Mar-2017 10:50:20.636 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /usr/local/tomcat/webapps/ROOT
    22-Mar-2017 10:50:20.697 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /usr/local/tomcat/webapps/ROOT has finished in 60 ms
    22-Mar-2017 10:50:20.697 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /usr/local/tomcat/webapps/examples
    22-Mar-2017 10:50:21.239 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /usr/local/tomcat/webapps/examples has finished in 542 ms
    22-Mar-2017 10:50:21.245 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-apr-8080"]
    22-Mar-2017 10:50:21.284 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-apr-8009"]
    22-Mar-2017 10:50:21.292 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 3351 ms