部署在WTP (Eclipse) Tomcat中的Maven WebApp: META-INF/context.xml不



免责声明:这不是"为什么我的JDBC资源没有在META-INF/context.xml中声明"类型问题的副本。

我有两个Java EE web应用程序:

  • 一个是在Eclipse IDE中使用Eclipse的"Web Application Project"模板创建的

  • 另一个是使用Maven创建的,然后导入到Eclipse

在Eclipse中,我也有一个使用WTP插件配置的Tomcat,这样我就可以很容易地(或者我希望如此)在那里以"一键按下"的方式部署我的Eclipse Web应用程序。

对于上面描述的每个应用程序,我都在它们的META-INF目录中放置了一个context.xml文件,我在其中声明了一些JDBC数据源作为JNDI资源。

Eclipse创建的应用程序在Eclipse内部的WTP Tomcat中部署时运行良好。我在Eclipse中右键单击Tomcat服务器,添加项目,启动它,一切正常,找到JNDI数据源等。

对于另一个项目,用Maven创建并在Eclipse中导入的项目,如果我将其添加到WTP Tomcat中,并手动指定Maven构建war文件的位置(在"target"目录中),它似乎可以工作,但没有找到JNDI数据源,更具体地说,是我的Spring声明的数据源:

 <jee:jndi-lookup id="dataSource" jndi-name="java:comp/env/whatever" />

抛出一个异常,表示没有JNDI名称绑定到"whatever"。

如果我将相同的war文件部署在"常规"Tomcat中(只是运行解压缩的Tomcat,不涉及Eclipse),它可以正常工作,并且可以找到在war的META-INF/context.xml中声明的JNDI数据源。

我已经查看了Eclipse的Tomcat工作目录,可以肯定的是,对于Eclipse创建的项目,context.xml文件被复制到"{catalina home}wtpwebappseclipeProjectNameMETA-INFcontext.xml"中,对于Maven项目没有这样的文件(和文件夹结构)。

我的问题是:有没有人知道如何将maven创建的web应用程序导入Eclipse并部署在WTP Tomcat中,以便将META-INF/context.xml文件考虑在内?

正如您所提到的,您正在使用Eclipse Helios。JBoss提供了一个替代的Eclipse更新站点。该文件告诉我们如下:-

以下文件夹永远不应该被删除,因为它们是组合的一部分当前/以前的JBoss Tools版本使用的需求站点:

Helios SR2: 0.13.1

Indigo SR2: 0.15.3

Juno(仅SOA工具集成堆栈-可能不再需要多久?):0.14.0

Juno SR1(如果有更新的Juno SR2目标平台,可以删除):0.16.0

请注意,在Eclipse Juno之前,我使用这个插件的Helios和Indigo。它也给了我一个好结果。

最新更新