在JBoss AS7中配置PostgreSQL数据源

在AS7当中,引入了新的module的概念。因此,如果需要在AS7中添加对Postgresql支持,需要做的是加入一个新的module。查看一下AS7的目录结构:

  1. @H_301_9@@H_301_9@weli@power:~/projs/jboss-as-7.1@H_301_9@.1@H_301_9@.Final$ ls
  2. @H_301_9@LICENSE.txt bundles jboss-modules.jar
  3. @H_301_9@README.txt copyright.txt modules
  4. @H_301_9@appclient docs standalone
  5. @H_301_9@bin domain welcome-content


我们进到modules目录,创建postgres的目录:

  1. @H_301_9@@H_301_9@mkdir -p org/postgresql/main


进入到创建好的目录,从Postgresql的网站下载所需的jdbc库,我下载的是postgresql-9.1-903.jdbc4.jar:

@H_403_75@
  • @H_301_9@@H_301_9@weli@power@H_301_9@:~/projs/jboss-as-7.1@H_301_9@.1@H_301_9@.Final/modules/org/postgresql/main$ ls
  • @H_301_9@postgresql-9.1@H_301_9@-903@H_301_9@.jdbc4.jar


  • 然后我们要制作module.xml,内容如下:

    1. @H_301_9@<module@H_301_9@ xmlns@H_301_9@="urn:jboss:module:1.1"@H_301_9@ name@H_301_9@="org.postgresql">@H_301_9@
    2. @H_301_9@<!-- Load with jboss-cli command:
    3. @H_301_9@/subsystem@H_301_9@=datasources@H_301_9@/jdbc-driver@H_301_9@=postgresql@H_301_9@-driver:add(driver-name@H_301_9@=postgresql@H_301_9@-driver,driver-class-name@H_301_9@=org@H_301_9@.postgresql.Driver,driver-module-name@H_301_9@=org@H_301_9@.postgresql)
    4. @H_301_9@-->@H_301_9@
    5. @H_301_9@<resources>@H_301_9@
    6. @H_301_9@<resource-root@H_301_9@ path@H_301_9@="postgresql-9.1-903.jdbc4.jar"/>@H_301_9@
    7. @H_301_9@</resources>@H_301_9@
    8. @H_301_9@<dependencies>@H_301_9@
    9. @H_301_9@<module@H_301_9@ name@H_301_9@="javax.api"/>@H_301_9@
    10. @H_301_9@<module@H_301_9@ name@H_301_9@="javax.transaction.api"/>@H_301_9@
    11. @H_301_9@</dependencies>@H_301_9@
    12. @H_301_9@</module>@H_301_9@


    这样,这个module就算制作完成了:

    1. @H_301_9@@H_301_9@weli@power:~/projs/jboss-as-7.1@H_301_9@.1@H_301_9@.Final/modules/org/postgresql/main$ ls
    2. @H_301_9@module.xml
    3. @H_301_9@postgresql-9.1@H_301_9@-903@H_301_9@.jdbc4.jar


    接下来要修改AS7的配置文件,如果用standalone模式,那么就修改standalone/configuration/standalone.xml:

    1. @H_301_9@<datasources>@H_301_9@
    2. @H_301_9@<drivers>@H_301_9@
    3. @H_301_9@<driver@H_301_9@ name@H_301_9@="h2"@H_301_9@ module@H_301_9@="com.h2database.h2">@H_301_9@
    4. @H_301_9@<xa-datasource-class>@H_301_9@org.h2.jdbcx.JdbcDataSource</xa-datasource-class>@H_301_9@
    5. @H_301_9@</driver>@H_301_9@
    6. @H_301_9@<driver@H_301_9@ name@H_301_9@="postgresql-driver"@H_301_9@ module@H_301_9@="org.postgresql">@H_301_9@
    7. @H_301_9@<driver-class>@H_301_9@org.postgresql.Driver</driver-class>@H_301_9@
    8. @H_301_9@</driver>@H_301_9@
    9. @H_301_9@</drivers>@H_301_9@
    10. @H_301_9@</datasources>@H_301_9@


    AS7自带一个H2的module,下面的postgresql-driver是我们添加的。这样,就完成了对postgres模块的导入。其实,我们不必手工编辑standalone.xml来添加模块。可以在AS7启动后,通过命令终端来添加

    1. @H_301_9@@H_301_9@/subsystem=datasources/jdbc-driver=postgresql-driver:add(driver-name=postgresql-driver,driver-module-name=org.postgresql)


    如果我们要使用这个模块,可以配置datasource:

    1. @H_301_9@<datasource@H_301_9@ jndi-name@H_301_9@="java:jboss/datasources/SOME_DB"@H_301_9@ pool-name@H_301_9@="SOME_DB"@H_301_9@ enabled@H_301_9@="true"@H_301_9@ use-java-context@H_301_9@="true">@H_301_9@
    2. @H_301_9@<connection-url>@H_301_9@jdbc:postgresql:SOME_DB</connection-url>@H_301_9@
    3. @H_301_9@<driver>@H_301_9@postgresql-driver</driver>@H_301_9@
    4. @H_301_9@<security>@H_301_9@
    5. @H_301_9@<user-name>@H_301_9@XXX</user-name>@H_301_9@
    6. @H_301_9@<password>@H_301_9@YYY</password>@H_301_9@
    7. @H_301_9@</security>@H_301_9@
    8. @H_301_9@</datasource>

    相关文章

    来源:http://www.postgres.cn/docs/11/ 4.1.1.&#160;标识符和关键词 SQL标识符和关键词必须以一个...
    来源:http://www.postgres.cn/docs/11/ 8.1.&#160;数字类型 数字类型由2、4或8字节的整数以及4或8...
    来源:http://www.postgres.cn/docs/11/ 5.1.&#160;表基础 SQL并不保证表中行的顺序。当一个表被读...
    来源:http://www.postgres.cn/docs/11/ 6.4.&#160;从修改的行中返回数据 有时在修改行的操作过程中...
    来源:http://www.postgres.cn/docs/11/ 13.2.1.&#160;读已提交隔离级别 读已提交是PostgreSQL中的...
    来源:http://www.postgres.cn/docs/11/ 9.7.&#160;模式匹配 PostgreSQL提供了三种独立的实现模式匹...