【问题标题】:JNDI Resource not available when using different ROOT Application in Tomcat 7在 Tomcat 7 中使用不同的 ROOT 应用程序时,JNDI 资源不可用
【发布时间】:2013-01-15 18:26:02
【问题描述】:

我终于在tomcat上制作了我的应用程序,问题是:

Frist problem with JNDI JDBC resource

现在我有另一个问题:

我已经更改了 Tomcat 中的默认 ROOT 应用程序:

[%CATALINA_HOME%\conf\server.xml]

  <Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">
       <Context path="" docBase="MY_APP" reloadable="true" debug="0" cookies="false"></Context>
    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"       prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b" />
  </Host>

然后,重启tomcat后,我尝试访问: AND IT WORKED FINE!

后来我发布了一个新版本的MY_APP。我部署了它,我又遇到了原来的问题: Original problem

我检查了所有的配置文件,一切似乎都正常,所以我尝试访问:http://localhost/MY_APP 并且成功了!但是通过http://localhost/ 访问的问题仍然存在......

我已从“webapps”目录中删除了所有其他应用程序。现在 webapps 只包含 MY_APP。 通过

访问
  • http://localhost/MY_APP --> 有效!
  • http://localhost/ --> JNDI JDBC 资源异常

你能告诉我我做错了什么吗?我找不到任何解释...

操作系统:Windows 2008 R2 标准 SP1 JVM:JDK 1.7u10 TOMCAT:apache-tomcat-7.0.34

谢谢!

【问题讨论】:

    标签: exception tomcat jndi configuration-files windows-server-2008-r2


    【解决方案1】:

    由于您在server.xml 中包含&lt;Context&gt; 元素,您可能正在经历双重部署。

    首先,停止这样做:从server.xml 中删除&lt;Context&gt;

    接下来,将您的 WAR 文件重命名为 ROOT.war(请注意,这是区分大小写的,即使在像 NTFS 这样通常忽略大小写的文件系统上也是如此)并将其放入 %CATALINA_BASE%/webapps(无论如何,这可能是它所在的位置)。

    您的 web 应用程序应该包含一个 META-INF/context.xml 文件,该文件是您的 &lt;Context&gt; 元素应该去的地方,包括任何 &lt;Resource&gt; 元素作为子元素。这就是您设置 JNDI 引用的地方。

    正确部署后,您的 web 应用程序应作为默认/ROOT 上下文工作,而 JNDI 正常工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-16
      • 2015-03-05
      • 2015-12-07
      • 2012-03-22
      相关资源
      最近更新 更多