现在的位置: 首页 > 综合 > 正文

配置 Gatein 为oracle连接

2013年07月16日 ⁄ 综合 ⁄ 共 6216字 ⁄ 字号 评论关闭

 

主要环境:

      JBOSS 5.1.0

      Orace 10G

      Gatein3.1.0-GA

引用一下Gatein 官方使用手册上的原文并简单反译和注解一下大概意思:

 

GateIn 3.1 has two different database dependencies. One is the identity service configuration, which depends on Hibernate. The other is Java content repository (JCR) service, which depends on JDBC API, and can integrate with any existing datasource implementation.

When you change the database configuration for the first time, GateIn will automatically generate the proper schema (assuming that the database user has the appropriate permissions).

GateIn 3.1 assumes the default encoding for your database is latin1. You may need to change this parameter for your database in order for GateIn 3.1 to work properly.

 

 

概述:
主要是说Gatein依赖两个数据库 一个是用来做身份认证的,是用Hibernate的。 另一个用来支持JCR的,用JDBC API 两个都可以支持
当前任何已存在的数库。
在你第一次改变数据库配置后,Gatein将会自动的生成schema(注解:数据库的方案,就是表,视图等)
(你的数据库用户要有这些权限)
GateIn3.1假定你的数据库编码方式为latin1,
你可能需要改变你的数据库的编码方式来让Gate3.1正常工作 
(注解:latin1 就是ISO8859-1编码,这个好像是mySql常用的编码方式,在我建立Oracle数据库时并没有这个编码方式,
我用的是UTF-8,这个是宽字符集,应该是兼容的,反正到现在还没发现有问题)

 

 

2.1.2. Configuring the database for JCR

 

To configure the database used by JCR you will need to edit the file:

$JBOSS_HOME/server/default/conf/gatein/configuration.properties

For Tomcat, the file is located at

$TOMCAT_HOME/gatein/conf/configuration.properties

And edit the values of driver, url, username and password with the values for your JDBC connection (please, refer to your database JDBC driver documentation).


gatein.jcr.datasource.driver=org.hsqldb.jdbcDriver
gatein.jcr.datasource.url=jdbc:hsqldb:file:${gatein.db.data.dir}/data/jdbcjcr_${name}
gatein.jcr.datasource.username=sa
gatein.jcr.datasource.password=

By default, the name of the database is "jdbcjcr_${name}" - ${name} should be a part of the database name, as it is dynamically replaced by the name of the portal container extension (for instance, gatein-sample-portal.ear defines "sample-portal" as container name and the default portal defines "portal" as container name).

In the case of HSQL the databases are created automatically. For any other database you will need to create a database named jdbcjcr_portal (and "jdbcjcr_sample-portal" if you have gatein-sample-portal.ear in $JBOSS_HOME/server/default/deploy - note that some databases don't accept '-' in the database name, so you may have to remove $JBOSS_HOME/server/default/deploy/gatein-sample-portal.ear)

Make sure the user has rights to create tables on jdbcjcr_portal, and to update them as they will be automatically created during the first startup .

Also add your database's JDBC driver into the classpath - you can put it in $JBOSS_HOME/server/default/lib (or $TOMCAT_HOME/lib, if you are running on Tomcat)

MySQL example:

Let's configure our JCR to store data in MySQL. Let's pretend we have a user named "gateinuser" with a password "gateinpassword". We would create a database "mygateindb_portal" (remember that _portal is required), and assign our user the rights to create tables.

Then we need to add MySQL's JDBC driver to the classpath, and finally edit gatein.ear/02portal.war/WEB-INF/conf/jcr/jcr-configuration to contain the following:

gatein.jcr.datasource.driver=com.mysql.jdbc.Driver
gatein.jcr.datasource.url=jdbc:mysql://localhost:3306/mygateindb${container.name.suffix}
gatein.jcr.datasource.username=gateinuser
gatein.jcr.datasource.password=gateinpassword

2.1.2. JCR的数据库配置

修改配置文件:
修改其中的驱动,url,用户名,密码,例如:
gatein.jcr.datasource.driver=org.hsqldb.jdbcDriver
gatein.jcr.datasource.url=jdbc:hsqldb:file:${gatein.db.data.dir}/data/jdbcjcr_${name}
gatein.jcr.datasource.username=sa
gatein.jcr.datasource.password=

....略去说它自已的默认配置方式,重点在下一段里.....
说在数据库为HSQL时,Gatein会自动的创建数据库,但是如果是别的数据库那么要手动的建立名为:"jdbcjcr_portal"的数据库
(注解:根据上一段所说,应该是库名必须为_portal结尾,在oracle 中 全局数据库名,和SID可以用任意,
只要创建一个名为jdbcjcr_portal的schema就可以了,
就是建立一个名为jdbcjcr_portal的用户的同时就建立了一个jdbcjcr_portal的schema

(还要创建一个名为"jdbcjcr_sample-portal"的数据库,为GateIn的一个例子使用,但是有些数据库不支持"-"命名数据库,
那么就把这个例子删除,位置是$JBOSS_HOME/server/default/deploy/gatein-sample-portal.ear)
(注解:oracle 不支持"-"命名的schema,我是直接干掉了这个ear的,简单方便)
要确保你的数据库用户有建表的权限。
要把你的数据库驱动考到$JBOSS_HOME/server/default/lib (你用Tomcat的话是$TOMCAT_HOME/lib)
给出了一个mysql 的例子:
gatein.jcr.datasource.driver=com.mysql.jdbc.Driver
gatein.jcr.datasource.url=jdbc:mysql://localhost:3306/mygateindb${container.name.suffix}
gatein.jcr.datasource.username=gateinuser
gatein.jcr.datasource.password=gateinpassword
我的
gatein.jcr.config.type=local
gatein.jcr.datasource.name=java:jdbcjcr
gatein.jcr.datasource.dialect=auto
gatein.jcr.datasource.driver=oracle.jdbc.driver.OracleDriver
gatein.jcr.datasource.url=jdbc:oracle:thin:@192.168.0.200:1521:dgoral
gatein.jcr.datasource.username=jdbcjcr_portal
gatein.jcr.datasource.password=XXXX

By default, users are stored in a database. To change the database in which to store users, you will need to edit the file:

$JBOSS_HOME/server/default/conf/gatein/configuration.properties

For Tomcat, the file is located at

$TOMCAT_HOME/gatein/conf/configuration.properties

You will find the same kind of configuration as in jcr-configuration.xml:

gatein.idm.datasource.driver=org.hsqldb.jdbcDriver
gatein.idm.datasource.url=jdbc:hsqldb:file:${gatein.db.data.dir}/data/jdbcidm_${name}
gatein.idm.datasource.username=sa
gatein.idm.datasource.password

2.1.3. 配置身份认证的数据库

还是上面的那个配置文件:

例子:(注解:这个我和上面那个用的同一个库,粘帖下就行了)
gatein.idm.datasource.driver=org.hsqldb.jdbcDriver
gatein.idm.datasource.url=jdbc:hsqldb:file:${gatein.db.data.dir}/data/jdbcidm_${name}
gatein.idm.datasource.username=sa
gatein.idm.datasource.password
我的
# IDM
gatein.idm.datasource.name=java:jdbcidm
gatein.idm.datasource.driver=oracle.jdbc.driver.OracleDriver
gatein.idm.datasource.url=jdbc:oracle:thin:@192.168.0.200:1521:dgoral
gatein.idm.datasource.username=jdbcjcr_porta
gatein.idm.datasource.password=XXXX

看完上面的也就基本可以弄好了。
附上我建立用户及schema的SQL语句:

抱歉!评论已关闭.