为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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

3 回答

?
jeck猫

TA贡献1909条经验 获得超7个赞

在这种情况下,您不应将驱动程序添加到 WAR 文件中,而应将其部署到 tomcat 的lib目录中。原因:服务器打开并保持连接,所以服务器本身需要访问驱动程序,而不仅仅是应用程序。

如果您还将驱动程序添加到应用程序中,您可能会冒着两个版本转移的风险,并且最终可能会在类路径上出现重复的类,这对于调试来说从来都不是一件有趣的事情。在绝对需要它的位置(服务器)包含一次,然后将其从 WAR 文件中删除。


查看完整回答
反对 回复 2021-08-06
?
心有法竹

TA贡献1866条经验 获得超5个赞

应用程序服务器并未与所有 RDBMS 系统的驱动程序 jar 文件捆绑在一起。Tomcat 肯定没有附带 Oracle 的 JDBC 驱动程序文件。但是仍然需要这些类来创建连接等。

所以是的,您需要包含驱动程序 jar。您可能需要在服务器本身上安装它(在 下<tomcat>/lib


查看完整回答
反对 回复 2021-08-06
  • 3 回答
  • 0 关注
  • 121 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号