1 , 首先查找JBOSS目录,找到 mysql-ds.xml文件,在其基础上进行修改
- <datasources>
- <local-tx-datasource>
- <jndi-name>KylinDataSource</jndi-name>
- <use-java-context>false</use-java-context>
- <connection-url>jdbc:mysql://127.0.0.1:3306/kylin?useUnicode=true&characterEncoding=utf-8</connection-url>
- <driver-class>com.mysql.jdbc.Driver</driver-class>
- <user-name>alibaba</user-name>
- <password>ca</password>
- <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
- <!-- should only be used on drivers after 3.22.1 with "ping" support
- <valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLValidConnectionChecker</valid-connection-checker-class-name>
- -->
- <!-- sql to call when connection is created
- <new-connection-sql>some arbitrary sql</new-connection-sql>
- -->
- <!-- sql to call on an existing pooled connection when it is obtained from pool - MySQLValidConnectionChecker is preferred for newer drivers
- <check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql>
- -->
- <!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
- <metadata>
- <type-mapping>mySQL</type-mapping>
- </metadata>
- </local-tx-datasource>
- </datasources>
这里要注意的是<use-java-context></use-java-context>false , 这个属性设置为false时,程序中可以直接通过如下spring的JNDI访问 , 否则设置为true时候,JBOSS生成的JNDI,需要通过java:MYSQL才能访问,这里我郁闷了很久
2 , 设置 standardjaws.xml
xml 代码
- <jaws>
- <datasource>java:/KylinDataSource</datasource>
- <type-mapping>mySQL</type-mapping>
- <debug>false</debug>
3, 设置 standardjbosscmp-jdbc.xml
xml 代码
<defaults>
- <jbosscmp-jdbc>
- <defaults>
- <datasource>java:/KylinDataSource</datasource>
- <datasource-mapping>mySQL</datasource-mapping>
4 , 设置 login-config.xml
xml 代码
- <application-policy name="jbossmq">
- <authentication>
- <login-module code="org.jboss.security.auth.spi.DatabaseServerLoginModule" flag="required">
- <module-option name="unauthenticatedIdentity">guest</module-option>
- <module-option name="dsJndiName">java:/KylinDataSource</module-option>
- <module-option name="principalsQuery">SELECT PASSWD FROM JMS_USERS WHERE USERID=?</module-option>
- <module-option name="rolesQuery">SELECT ROLEID, 'Roles' FROM JMS_ROLES WHERE USERID=?</module-option>
- </login-module>
- </authentication>
- </application-policy>
- <application-policy name="HsqlDbRealm">
- <authentication>
- <login-module code="org.jboss.resource.security.ConfiguredIdentityLoginModule" flag="required">
- <module-option name="principal">sa</module-option>
- <module-option name="userName">sa</module-option>
- <module-option name="password"></module-option>
- <module-option name="managedConnectionFactoryName">jboss.jca:service=LocalTxCM,name=KylinDataSource</module-option>
- </login-module>
- </authentication>
- </application-policy>
注意这里的 name = KylinDataSource 必须设置成根上面两个文件的一样
4 , 修改 deploy/jms/ 目录下的 hsqldb-jdbc-state-service.xml
xml 代码
- <depends optional-attribute-name="ConnectionManager">jboss.jca:service=DataSourceBinding,name=KylinDataSource</depends>
设置这里的depends依赖服务, 这里的name 还是使用 KylinDataSource,保持统一, 可根据情况作修改,最后改名为
mysql-jdbc-state-service.xml即可
5 , 搜索mysql-jdbc2-service.xml 替换原先得 hsqldb-jdbc2-service.xml
ok 完成了
</defaults>