Skip to content

JBoss配置Oracle数据源-JNDI

1. 将 %JBOSS_HOME%\docs\examples\jca\oracle-ds.xml 复制到 %JBOSS_HOME%\server\default\deploy 目录下。

2. 打开 oracle-ds.xml,做如下编辑:

  • 修改jndi <jndi-name>OracleDS</jndi-name>
  • 修改url <connection-url>jdbc:oracle:thin:@localhost:1521:orcl</connection-url>
  • 修改驱动 <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
  • 修改用户名和密码  <user-name>root</user-name>  <password>123456</password>

<ie7:! class=”ie7_anon ie7_class29″ id=”ie7_pseudo0″><?xml version=”1.0″ encoding=”UTF-8″?>
<datasources>
<local-tx-datasource>
<jndi-name>OracleDS</jndi-name>   //jndi名字
<use-java-context>false</use-java-context>
<connection-url>jdbc:oracle:thin:@localhost:1521:orcl</connection-url>  //URL地址
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>  //驱动
<user-name>root</user-name>    //用户名
<password>123456</password>  //密码
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter
</exception-sorter-class-name>
<metadata>
<type-mapping>Oracle9i</type-mapping>
</metadata>
<min-pool-size>10</min-pool-size>
<max-pool-size>30</max-pool-size>
<blocking-timeout-millis>60000</blocking-timeout-millis>
<idle-timeout-minutes>2</idle-timeout-minutes>
<new-connection-sql>SELECT COUNT(*) FROM dual</new-connection-sql>
<check-valid-connection-sql>SELECT COUNT(*) FROM dual</check-valid-connection-sql>
</local-tx-datasource>
</local-tx-datasource>
</datasources>

<ie7:! class=”ie7_anon ie7_class30″ id=”ie7_pseudo6″>

3. 打开 %JBOSS_HOME%\server\default\conf\standardjbosscmp-jdbc.xml 并编辑:

<ie7:! class=”ie7_anon ie7_class29″ id=”ie7_pseudo1″><jbosscmp-jdbc>
<defaults>
<datasource>java:/DefaultDS</datasource>
……
</defaults>
……
</jbosscmp-jdbc>

<ie7:! class=”ie7_anon ie7_class30″ id=”ie7_pseudo7″>

4. 打开 %JBOSS_HOME%\server\default\conf\login-config.xml, 将如下内容复制到文件最后:

<ie7:! class=”ie7_anon ie7_class29″ id=”ie7_pseudo2″><application-policy name = “OracleDbRealm”>
<authentication>
<login-module code = “org.jboss.resource.security.ConfiguredIdentityLoginModule” flag = “required”>
<module-option name = “principal”>OracleDS</module-option>
<module-option name = “userName”>root</module-option>
<module-option name = “password”>123456</module-option>
<module-option name = “managedConnectionFactoryName”>
jboss.jca:service=LocalTxCM,name=OracleDS
</module-option>
</login-module>
</authentication>
</application-policy>

<ie7:! class=”ie7_anon ie7_class30″ id=”ie7_pseudo8″>

5. 将 Oracle 驱动程序复制到 %JBOSS_HOME%\server\default\lib 目录下。

 

去除jboss的冲突包

由于jboss自身带的hibernate-annotations.jar版本与项目使用的版本存在冲突,因此去除hibernate-annotations.jar包

mv /opt/jboss-4.2.2.GA/server/default/lib/hibernate-annotations.jar /opt/jboss-4.2.2.GA/server/default/lib/hibernate-annotations.jar.bak  10. 部署esales.war到/opt/jboss-4.2.2.GA/server/default/deploy
以上的5步操作,完成了 JBoss 基本的数据源配置,但配置文件中有密码的明码,存在安全隐患。所以请使用如下的方法对密码进行加密的配置:

1. 生成加密密码:

  • 进入dos命令行模式
  • Set JBOSS_HOME环境变量
  • 执行如下命令:

<ie7:! class=”ie7_anon ie7_class29″ id=”ie7_pseudo3″>java -cp %JBOSS_HOME%\lib\jboss-jmx.jar;%JBOSS_HOME%\lib\jboss-common.jar;%JBOSS_HOME%\server\default\lib\jboss-jca.jar;%JBOSS_HOME%\server\default\lib\jbosssx.jar org.jboss.resource.security.SecureIdentityLoginModule 123456

<ie7:! class=”ie7_anon ie7_class30″ id=”ie7_pseudo9″>

  • 生成 123456 的加密密码为: 64c5fd2979a86168

2. 修改 %JBOSS_HOME%\server\default\deploy\oracle-ds.xml 文件:

<ie7:! class=”ie7_anon ie7_class29″ id=”ie7_pseudo4″><?xml version=”1.0″ encoding=”UTF-8″?>
<datasources>
<local-tx-datasource>
<jndi-name>OracleDS</jndi-name>
<use-java-context>false</use-java-context>
<connection-url>jdbc:oracle:thin:@localhost:1521:orcl</connection-url>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<security-domain>EncryptDBPassword</security-domain> //这里不用写上你的用户名与密码了,我们可以在 login-config.xml 里做点手脚,就OK了
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
<metadata>
<type-mapping>Oracle9i</type-mapping>
</metadata>
<min-pool-size>10</min-pool-size>
<max-pool-size>30</max-pool-size>
<blocking-timeout-millis>60000</blocking-timeout-millis>
<idle-timeout-minutes>2</idle-timeout-minutes>
<new-connection-sql>SELECT COUNT(*) FROM dual</new-connection-sql>
<check-valid-connection-sql>SELECT COUNT(*) FROM dual</check-valid-connection-sql>
</local-tx-datasource>
</local-tx-datasource>
</datasources>

<ie7:! class=”ie7_anon ie7_class30″ id=”ie7_pseudo10″>

3. 打开 %JBOSS_HOME%\server\default\conf\login-config.xml 文件,加上下面这一段配置文件:

<ie7:! class=”ie7_anon ie7_class29″ id=”ie7_pseudo5″><application-policy name=”EncryptDBPassword”> //这里的 name 应该是你在配置数据源时写的 security-domain 里的字符串
<authentication>
<login-module code=”org.jboss.resource.security.SecureIdentityLoginModule”
flag=”required”>
<module-option name=”username”>root</module-option> //数据库的用户名
<module-option name=”password”>64c5fd2979a86168</module-option> //数据库的密码,不过是加密过的了
<module-option name=”managedConnectionFactoryName”>
jboss.jca:service=LocalTxCM,name=OracleDS
</module-option> //注意 name 等于你的数据源的 jndi-name,这里是 OracleDS。
</login-module>
</authentication>
</application-policy>

发表评论

电子邮件地址不会被公开。 必填项已用*标注