我正在将 WAR 部署到 Tomcat 中,该 Tomcat 具有在其 context.xml 中定义的数据源 (Oracle)。我的应用程序通过 jndi 名称访问它。我需要将 jar 驱动程序嵌入到战争中吗?或者我只需要将它放在 Tomcat 的类路径中?- 编辑 -我解释的有点不对。我在战争中提供它并且它正在起作用。但我认为我最后的疑问是连接是由服务器本身建立的,还是 jndi 只是将数据提供给应用程序来执行它。战争中提供的驱动程序让我在这种行为中感到困惑
3 回答

jeck猫
TA贡献1909条经验 获得超7个赞
在这种情况下,您不应将驱动程序添加到 WAR 文件中,而应将其部署到 tomcat 的lib
目录中。原因:服务器打开并保持连接,所以服务器本身需要访问驱动程序,而不仅仅是应用程序。
如果您还将驱动程序添加到应用程序中,您可能会冒着两个版本转移的风险,并且最终可能会在类路径上出现重复的类,这对于调试来说从来都不是一件有趣的事情。在绝对需要它的位置(服务器)包含一次,然后将其从 WAR 文件中删除。

心有法竹
TA贡献1866条经验 获得超5个赞
应用程序服务器并未与所有 RDBMS 系统的驱动程序 jar 文件捆绑在一起。Tomcat 肯定没有附带 Oracle 的 JDBC 驱动程序文件。但是仍然需要这些类来创建连接等。
所以是的,您需要包含驱动程序 jar。您可能需要在服务器本身上安装它(在 下<tomcat>/lib
)
添加回答
举报
0/150
提交
取消