0

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

JNDI JDBC 资源的第一个问题

现在我有另一个问题:

我已经更改了 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。我部署了它,我又遇到了原来的问题: 原来的问题

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

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

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

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

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

谢谢!

4

1 回答 1

0

由于您将<Context>元素包含在server.xml.

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

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

你的 webapp 应该包含一个META-INF/context.xml文件,该文件是你的<Context>元素应该去的地方,包括任何<Resource>作为子元素的元素。这就是您设置 JNDI 引用的地方。

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

于 2013-01-16T16:37:39.730 回答