我正在尝试使用sql:setdatasource在我的jsp页面中使用context.xml和web.xml中定义的数据源。
我已经能够使用以下内容直接指定连接:
<sql:setDataSource var="snapshot" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/bar_db" user="foo" password="bar123"/>
<sql:query var="result" dataSource="${snapshot}">
SELECT * FROM foo_tb
</sql:query>
我想使用web.xml和context.xml从这个文件中获取用户名,密码和网址。
使用类似的东西:
<sql:setDataSource var="conn" dataSource="jdbc/bar_db"
这是我试过的 -
Web.xml中
<web-app ...> ...
<resource-ref>
<description>DB Conn</description>
<res-ref-name>jdbc/bar_db</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref></web-app>
context.xml中
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/FieldNotifications">
<Resource auth="Container"
driverClassName="com.mysql.jdbc.Driver"
maxActive="20"
maxIdle="8" maxWait="10000"
name="jdbc/bar_db"
password="bar123"
type="javax.sql.DataSource"
url="jdbc:mysql://localhost:3306/bar_db"
username="foo"/>
</Context>
我使用以下工具:Netbeans 8.1,MySQL 5.7,Connector / J
更新 寻找除initParams以外的东西,但这是我目前的止损。
我创建了context-params&amp;我现在使用以下内容:
<context-param>
<param-name>dbaddress</param-name>
<param-value>jdbc:mysql://localhost:3306/bar_db</param-value>
</context-param>
<context-param>
<param-name>dbuser</param-name>
<param-value>foo</param-value>
</context-param>
<context-param>
<param-name>dbpassword</param-name>
<param-value>bar123</param-value>
</context-param>
在JSP中,我使用
<sql:setDataSource var="snapshot" driver="com.mysql.jdbc.Driver"
url="${initParam['dbaddress']}" user="${initParam['dbuser']}"
password="${initParam['dbpassword']}"/>
问题依然存在:
如何使用context.xml和web.xml设置数据源? 通过定义资源或连接池。不知怎的,司机无法进入。