部署在WTP(Eclipse)Tomcat中的Maven WebApp:未复制META-INF / context.xml(被忽略)

时间:2013-04-02 14:23:13

标签: eclipse maven tomcat deployment

免责声明:这不是“为什么不考虑我在META-INF / context.xml中声明我的JDBC资源”类型问题的重复。

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

  • 使用Eclipse的“Web应用程序项目”模板在Eclipde IDE中创建一个

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

在Eclipse中我还使用WTP插件配置了Tomcat,这样我就可以轻松地(或者我希望)以“一键推送”的方式在那里部署我的Eclipse Web Apps。

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

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

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

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

抛出异常,说没有JNDI名称被绑定为“what”。

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

我查看了Eclipse的Tomcat工作目录,当然对于Eclipse创建的项目,context.xml文件被复制到“{catalina home} \ wtpwebapps \ eclipeProjectName \ META-INF \ context.xml”里面,有没有Maven项目的文件(和文件夹结构)。

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

1 个答案:

答案 0 :(得分:0)

正如您所提到的,您正在使用Eclipse Helios。 JBoss提供了一个替代的Eclipse Update SiteThe document告诉我们如下: -

  

永远不要删除以下文件夹,因为它们是复合文件的一部分   用于当前/以前的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这个插件。它也给了我一个很好的结果。

我希望这可能有所帮助。