.War可在Windows上部署但无法部署在Linux服务器(Tomcat 7)上 [英] .War Works to deploy on Windows but fails to deploy on a Linux server (Tomcat 7)

查看:431
本文介绍了.War可在Windows上部署但无法部署在Linux服务器(Tomcat 7)上的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

随着标题的出现,我正在使用Tomcat 7部署的.War文件在运行Linux的机器上不起作用。它在Windows上可以工作,当然也可以部署在Tomcat 7中。



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



我跟踪的错误消息如下:

  2015年9月14日4:46:05 PM org.apache.catalina.deploy.NamingResources清理
警告:无法检索容器的JNDI命名上下文[StandardEngine [Catalina ] .StandardHost [localhost] .StandardContext [/ SmartHomeReasoner]],因此没有为该容器执行清理
javax.naming.NameNotFoundException:Name [comp / env]未在此上下文中绑定。无法找到[comp]。
在org.apache.naming.NamingContext.lookup(NamingContext.java:819)
在org.apache.naming.NamingContext.lookup(NamingContext.java:167)
在org.apache .catalina.deploy.NamingResources.cleanUp(NamingResources.java:986)
在org.apache.catalina.deploy.NamingResources.stopInternal(NamingResources.java:968)
在org.apache.catalina.util .LifecycleBase.stop(LifecycleBase.java:232)
在org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5676)
在org.apache.catalina.util.LifecycleBase.stop (LifecycleBase.java:232)
在org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:141)
在org.apache.catalina.manager.ManagerServlet.start(ManagerServlet.java :1256)
在org.apache.catalina.manager.HTMLManagerServlet.start(HTMLManagerServlet.java:692)
在org.apache.catalina.manager.HTMLManagerServlet.doPost(HTMLManagerServlet.java:217)
在javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
在javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
在org.apache.catalina.core .ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
在org.apache.catalina.filters.CsrfPreventionFilter.doFilter (CsrfPreventionFilter.java:213)
在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java :208)
在org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
在org.apache.catalina.core.ApplicationFilterChain.doFilter(Applicatio nFilterChain.java:208)
在org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
在org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java: 122)
在org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:610)
在org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
在org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
在org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
在org .apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
在org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
在org.apache.coyote .http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
在org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process(AbstractProtoc ol.java:607)
在org.apache.tomcat.util.net.JIoEndpoint $ SocketProcessor.run(JIoEndpoint.java:313)
在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor。 java:1145)
在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:615)
在java.lang.Thread.run(Thread.java:745)


解决方案

这是两个问题,实际上导致了这个问题。
$ b

为了解决这个问题,我不得不:



*请检查web.xml非常仔细,不存在我们已经定义的东西的servlet驱动程序被定义两次,这意味着它已经被定义在某个地方,也在web.xml中。



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



相信我所提到的两件事情都可能是一个问题,很可能如果您从其他已经完成此项目的开发人员处理工作。


As title introduced, the .War file I'm trying to deploy by using Tomcat 7 is not working on a machine running Linux. It does work on Windows and is of course deployed with Tomcat 7.

I've tried to track down the issue alone & searched for related problems on the web including this forum with no success so far. That is why i created this thread asking for help / hints.

The error message I tracked down are the following:

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)

解决方案

It were 2 problems actually causing this issue.

To solve the issue I had to:

*Check the web.xml VERY carefully after any misstakes like e.g. servlets that do not exist our already defined things e.g. driver being defined twice, meaning it's defined somewhere already AND also in the web.xml.

*Remove servlet in the ..\WEB-INF\lib folder of the project. E.g. javax.servlet-api-3.0.1.jar + javax.servlet-api-3.1.0.jar were removed in this case. NOTE I even had jars that can conflict with each other on project-level but still I was able to deployed successfully on Windows but not on Linux.

Trust me both of the things I mentioned can be a issue, most likely if you take over work from other devs that have done this miss.

这篇关于.War可在Windows上部署但无法部署在Linux服务器(Tomcat 7)上的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆