Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.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 .War可以在Windows上部署,但无法在Linux服务器上部署(Tomcat 7)_Java_Linux_Deployment_Tomcat7_Web Deployment - Fatal编程技术网

Java .War可以在Windows上部署,但无法在Linux服务器上部署(Tomcat 7)

Java .War可以在Windows上部署,但无法在Linux服务器上部署(Tomcat 7),java,linux,deployment,tomcat7,web-deployment,Java,Linux,Deployment,Tomcat7,Web Deployment,正如标题所介绍的,我试图使用Tomcat7部署的.War文件在运行Linux的机器上不起作用。它确实可以在Windows上工作,当然是与Tomcat7一起部署的 我试图单独追踪这个问题&在网络上搜索相关问题,包括这个论坛,但迄今为止没有成功。这就是为什么我创建了这个请求帮助/提示的线程 我跟踪到的错误消息如下: Sep 14, 2015 4:46:05 PM org.apache.catalina.deploy.NamingResources cleanUp WARNING: Failed to

正如标题所介绍的,我试图使用Tomcat7部署的.War文件在运行Linux的机器上不起作用。它确实可以在Windows上工作,当然是与Tomcat7一起部署的

我试图单独追踪这个问题&在网络上搜索相关问题,包括这个论坛,但迄今为止没有成功。这就是为什么我创建了这个请求帮助/提示的线程

我跟踪到的错误消息如下:

Sep 14, 2015 4:46:05 PM org.apache.catalina.deploy.NamingResources cleanUp
WARNING: Failed to retrieve JNDI naming context for container [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/SmartHomeReasoner]] so no cleanup was performed for that container
javax.naming.NameNotFoundException: Name [comp/env] is not bound in this Context. Unable to find [comp].
        at org.apache.naming.NamingContext.lookup(NamingContext.java:819)
        at org.apache.naming.NamingContext.lookup(NamingContext.java:167)
        at org.apache.catalina.deploy.NamingResources.cleanUp(NamingResources.java:986)
        at org.apache.catalina.deploy.NamingResources.stopInternal(NamingResources.java:968)
        at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
        at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5676)
        at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:141)
        at org.apache.catalina.manager.ManagerServlet.start(ManagerServlet.java:1256)
        at org.apache.catalina.manager.HTMLManagerServlet.start(HTMLManagerServlet.java:692)
        at org.apache.catalina.manager.HTMLManagerServlet.doPost(HTMLManagerServlet.java:217)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.apache.catalina.filters.CsrfPreventionFilter.doFilter(CsrfPreventionFilter.java:213)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:610)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)

实际上是两个问题导致了这个问题

为了解决这个问题,我必须:

*在出现任何错误(如Servlet不存在)后,请仔细检查web.xml。我们已经定义了一些东西,例如驱动程序被定义了两次,这意味着它已经在web.xml中定义了

*删除项目的..\WEB-INF\lib文件夹中的servlet。例如,在本例中,javax.servlet-api-3.0.1.jar+javax.servlet-api-3.1.0.jar被删除。 注意,我甚至有可能在项目级别上相互冲突的JAR,但我仍然能够成功地在Windows上部署,但不能在Linux上部署


相信我,我提到的这两件事都可能是一个问题,最有可能的情况是,如果你从其他开发人员那里接手了这项工作,你就会错过。

刚刚遇到了同样的问题,正在同步Maven构建(从1.8到1.10)和运行环境(1.10)的Java版本已解决。

看起来您可能正在尝试获取一个未定义的JNDI资源。检查您的服务器的
server.xml
context.xml
是否存在差异?也许吧?@CollinD,恐怕没有差异。这确实是一个奇怪的问题。不确定这些是否有帮助,但看起来这是一个通用的错误,可能意味着很多事情,或者@CollinD,是的,我尝试过这些,可惜没有帮助。然后我想我能给你的是一个向上的投票和良好的祝愿。很抱歉