谁在服务器中配置的 JNDI 数据源上执行连接?

我正在将 WAR 部署到 Tomcat 中,该 Tomcat 具有在其 context.xml 中定义的数据源 (Oracle)。

我的应用程序通过 jndi 名称访问它。我需要将 jar 驱动程序嵌入到战争中吗?或者我只需要将它放在 Tomcat 的类路径中?

- 编辑 -

我解释的有点不对。我在战争中提供它并且它正在起作用。
但我认为我最后的疑问是连接是由服务器本身建立的,还是 jndi 只是将数据提供给应用程序来执行它。
战争中提供的驱动程序让我在这种行为中感到困惑


PIPIONE
浏览 154回答 3
3回答

jeck猫

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

心有法竹

应用程序服务器并未与所有 RDBMS 系统的驱动程序 jar 文件捆绑在一起。Tomcat 肯定没有附带 Oracle 的 JDBC 驱动程序文件。但是仍然需要这些类来创建连接等。所以是的,您需要包含驱动程序 jar。您可能需要在服务器本身上安装它(在 下<tomcat>/lib)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python