我实现了一个在Tomcat 7下运行在Axis2(Jax-WS)上的Java Web服务。 要从postgreSQL获取数据,此Web服务使用mybatis框架。 如果我在mybatis-config.xml中手动设置连接参数,则一切正常 我想使用JNDI数据源直接通过服务器上下文获取它们。
在myBatis-config.xml中,我添加了以下标记(在环境标记内):
<dataSource type="JNDI">
<property name="data_source" value="java:comp/env/jdbc/myWebService" />
</dataSource>
在互联网上搜索我也明白我必须使用以下标签创建一个Tomcat(或Axis2?)上下文:
<Resource name="jdbc/myWebService" auth="Container" type="javax.sql.DataSource" driverClassName="org.postgresql.Driver" url="jdbc:postgresql://localhost:5432/myDB" username="user" password="password" maxActive="20" maxIdle="10" maxWait="-1"/>
和
<resource-ref>
<description>ConnectionToPostgreSQL</description>
<res-ref-name>jdbc/myWebService</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
但我不知道在哪里(在哪个xml文件中)我必须放置它们以及是否需要其他任何东西。
答案 0 :(得分:0)
Resource
定义可以在[your webapp name]/META-INF/context.xml
文件中定义,例如:
<?xml version='1.0' encoding='utf-8'?>
<Context path="/[your webapp context]" privileged="true">
<Resource name="jdbc/myWebService" auth="Container" type="javax.sql.DataSource" driverClassName="org.postgresql.Driver" url="jdbc:postgresql://localhost:5432/myDB" username="user" password="password" maxActive="20" maxIdle="10" maxWait="-1"/>
</Context>
还有其他选项 - 例如在server.xml
或共享context
中定义它。请参阅JNDI Resources HOW-TO。
resource-ref
进入[your webapp name]/WEB-INF/web.xml
。