对于你们中的一些人来说,这可能是一个非常简单的问题,尽管我需要帮助理解我的Spring MVC应用程序(目前在Glassfish 4和MySQL上运行)之间建立数据库连接的过程。这样做的步骤是什么?我在下面概述了我的想法,但是我仍然不清楚这个过程。
到目前为止,我已在Glassfish 4管理面板中创建了一个JDBC连接池,并使用已定义的参数成功连接; ping返回成功。我现在需要创建一个JNDI数据源,因为我认为这是连接到数据库连接池所必需的吗?
如果这是迄今为止的正确步骤;接下来会执行哪些步骤?我的假设是需要配置web.xml以便链接到JNDI DataSource?这是对的吗?
我们将非常感谢您的协助。
[增订]
我已经想到这一切,现在一切都按预期执行。但是,我遇到了一个含义,我不太明白为什么连接不想在某一点上运行。
这是我在web.xml中的配置,我遇到了以下问题:
<resource-ref>
<res-ref-name>jdbc/application</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
尝试从我的某个表中提取记录时,我收到了所有类型的错误。错误消息类似于:
“javax.servlet.jsp.JspException:无法获得连接,DataSource invalid:“java.sql.SQLException:分配连接时出错。 原因:无法分配连接,因为: java.net.ConnectException:连接到服务器localhost时出错 港口1527“
虽然我找到了解决方案,但我在web.xml中的父<mapped-name>
元素中包含了<resource-ref>
元素
这是我应用更新后文件的内容:
<resource-ref>
<res-ref-name>jdbc/application</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<mapped-name>jdbc/application</mapped-name>
</resource-ref>
<mapped-name>
节点做了什么允许我正确建立此连接?我的假设是找到并将它映射到正确的JNDI记录,尽管我认为这个映射是由最初定义的:<re-ref-name>
元素执行的。
请提出意见,我们将对此作出解释。
答案 0 :(得分:0)
我现在需要创建JNDI数据源吗?
这不是强制性的,但也是有利的。您可以像对象一样访问数据库。 (JNDI / YourDatasource)
如果这是迄今为止的正确步骤;接下来会执行哪些步骤?我的假设是需要配置web.xml以便链接到JNDI DataSource?这是对的吗?
在这种情况下,App服务器可能会有所不同。 web.xml是一个选择或sun-resources.xml