在Tomcat 7中使用不同的ROOT应用程序时,JNDI资源不可用

时间:2013-01-15 18:26:03

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

我终于在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后,我尝试访问:它工作得很好!

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

我检查了所有配置文件,一切似乎都没问题,所以我试图访问:http://localhost/MY_APP并且它已经工作了!但是通过http://localhost/访问的问题仍然存在......

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

访问
  • http://localhost/MY_APP - &gt;有用!
  • http://localhost/ - &gt; JNDI JDBC资源异常
你可以告诉我我做错了什么吗?我找不到任何解释......

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

谢谢!

1 个答案:

答案 0 :(得分:0)

由于您在<Context>中加入了server.xml元素,您可能会遇到双重部署。

首先,停止这样做:从<Context>删除server.xml

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

您的网络应用应包含META-INF/context.xml文件,该文件应该是您的<Context>元素所在的位置,包括作为子级的所有<Resource>元素。这就是你将获得JNDI参考设置的地方。

正确部署后,您的webapp应该作为默认/ ROOT上下文,JNDI正常工作。