关于bboss-persistent持久层框架通过jndi引用外部数据源(datasource)的说明
bboss persistent框架可以引用外部数据源,例如tomcat,weblogic和WebSphere平台提供的datasource,需要在poolman.xml文件中配置,具体的做法可以参考本博客文章《bboss persistent框架数据库连接池配置介绍》,这里补充一点关于jndi名称的配置问题。这里以tomcat为例。
假如在tomcat的context上下文配置文件中配置了如下的datasource:
<Context path="" crossContext="true">
<!-- JAAS -->
<Realm
className="org.apache.catalina.realm.JAASRealm"
appName="PortalRealm"
userClassNames="com.liferay.portal.kernel.security.jaas.PortalPrincipal"
roleClassNames="com.liferay.portal.kernel.security.jaas.PortalRole"
/>
<Resource
name="jdbc/LiferayPool"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:orcl"
username="lportal"
password="lportal"
maxActive="20"
/>
<!--
Uncomment the following to disable persistent sessions across reboots.
-->
<!--<Manager pathname="" />-->
<!--
Uncomment the following to not use sessions. See the property
"session.disabled" in portal.properties.
-->
<!--<Manager className="com.liferay.support.tomcat.session.SessionLessManagerBase" />-->
</Context>
其中的jdbc/LiferayPool即为该数据源jndi查找名称。
下面说明如何在poolman中配置一个连接池,该池直接通过【jdbc/LiferayPool】引用上下文中配置的连接池。poolman.xml文件的配置如下:
<?xml version="1.0" encoding="utf-8"?>
<poolman>
<datasource external="true">
<dbname>datareuse</dbname>
<externaljndiName>jdbc/LiferayPool</externaljndiName>
<showsql>false</showsql>
<jndiName>dbcp_datasource_jndiname</jndiName>
</datasource>
</poolman>
在应的web.xml文件中添加以下jndi引用配置:
<?xml version="1.0" encoding="UTF-8" ?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<display-name>Creator esb Web Application</display-name>
........
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/LiferayPool</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
注意:
对于tomcat的jndi,bboss3.4及之前的版本需要在jdbc/LiferayPool前面添加了java:com/env/,这样才能正确地发现配置在上下文中的datasource,否则将无法获取这个datasource。
<externaljndiName>java:com/env/jdbc/LiferayPool</externaljndiName>
3.5及以后的版本已经无需添加java:com/env/
externaljndiName>jdbc/LiferayPool</externaljndiName>
本文介绍bboss-persistent持久层框架如何通过JNDI引用外部数据源,如Tomcat配置的数据源,并提供了具体的poolman.xml配置示例及web.xml中JNDI引用的设置。
方法&spm=1001.2101.3001.5002&articleId=83364840&d=1&t=3&u=6e52c00be7324998bf826dd699fe4582)
438

被折叠的 条评论
为什么被折叠?



