1

Eclipse 版本:(Java EE):3.7 Indigo,32 位
Tomcat 版本: 6.0
操作系统: Windows 7 64 位 SP1

问题:我在 Eclipse 中创建了一个动态 web 应用程序 xyz。在正确集成 Eclipse 和 Tomcat 后,我​​将 xyz 添加到本地服务器实例,并在 server.xml(在 Eclipse 服务器项目中)编辑 xyz 的上下文条目以包含 jdbc 资源引用。

server.xml (in Eclipse. Username, pwd, ip etc. below are altered)

<Context docBase="xyz" path="/xyz" reloadable="true" source="org.eclipse.jst.j2ee.server:xyz">
      <Resource auth="Container" 
                driverClassName="oracle.jdbc.driver.OracleDriver" 
                factory="org.apache.commons.dbcp.BasicDataSourceFactory"
                maxActive="100"
                maxIdle="30"
                name="jdbc/xyz"
                username="123"
                password="123"
                type="javax.sql.DataSource"
                url="jdbc:oracle:thin:@1.1.1.1:sid" />
</Context>

但是,当 Eclipse将此 server.xml 文件发布到热部署文件夹(在 Windows 中,位于 .metadata ... > tmp0 > conf)时,Eclipse会完全忽略Resource 引用。部署的 server.xml 文件如下所示:

<Context
    docBase="C:\ws\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\xyz"
    path="/xyz"
    reloadable="true"
    source="org.eclipse.jst.j2ee.server:xyz" />

为什么会这样?(有解决办法吗?)。换句话说,如何让 Eclipse使用我的资源引用部署server.xml文件?

4

1 回答 1

0

您应该将 DataSource 条目放入Context.xml而不是Server.xml

从版本开始,不建议<Context></context>在 server.xml中使用。6.0

更新:解决Sever.xml不复制

参考此报价来源

您无需编辑临时目录中的副本。下次发布时,它将从主副本(当前在配置中)更新。

既然您对 Tomcat 配置有足够的了解,那么还有一件事会有所帮助。在 Preferences > Server 下,选中在工作区中创建资源的复选框。然后删除现有的 Tomcat 服务器并创建另一个。这将在工作区而不是在 .metadata 目录中创建所有资源,因此您可以在工作区中的其他文件旁边编辑它们。

于 2012-11-06T07:47:36.527 回答