关闭 x
IT技术网
    技 采 号
    ITJS.cn - 技术改变世界
    • 实用工具
    • 菜鸟教程
    IT采购网 中国存储网 科技号 CIO智库

    IT技术网

    IT采购网
    • 首页
    • 行业资讯
    • 系统运维
      • 操作系统
        • Windows
        • Linux
        • Mac OS
      • 数据库
        • MySQL
        • Oracle
        • SQL Server
      • 网站建设
    • 人工智能
    • 半导体芯片
    • 笔记本电脑
    • 智能手机
    • 智能汽车
    • 编程语言
    IT技术网 - ITJS.CN
    首页 » JAVA »使用Maven配置JBoss、Wildfly数据源

    使用Maven配置JBoss、Wildfly数据源

    2014-11-19 00:00:00 出处:巫_1曲待续
    分享

    大多数Java EE应用在其业务逻辑层中会访问数据库,所以开发者会经常需要为应用服务器配置数据库驱动和数据库连接。这篇文章会讨论如何用Maven自动化JBoss、Wildfly和Postgre数据库的配置。

    Maven 配置

    让我们从下面的pom.xml 开始吧,

    Wildfly Maven Plugin

    <plugin>
        <groupid>org.wildfly.plugins</groupid>
        <artifactid>wildfly-maven-plugin</artifactid>
        <version>1.0.2.Final</version>
        <configuration>
            <executecommands>
                <batch>false</batch>
                <scripts>%MINIFYHTML7db47c7a4774fb3aa46c5ca8120866ec8%</scripts>
            </executecommands>
        </configuration>
        <dependencies>
            <dependency>
                <groupid>org.postgresql</groupid>
                <artifactid>postgresql</artifactid>
                <version>9.3-1102-jdbc41</version>
            </dependency>
        </dependencies>
    </plugin>

    我们开始使用Wildfly Maven Plugin在应用服务器执行命令脚本。我们已经添加了 Postgre的依赖, Maven会下载依赖, 因为我们将要在后面把它加到服务器中。这里有一个 ${cli.file} 属性, 将指明将执行哪一个脚本。

    让我们在pom.xml中添加下面内容:

    Maven Resources Plugin

    <plugin>
        <groupid>org.apache.maven.plugins</groupid>
        <artifactid>maven-resources-plugin</artifactid>
        <version>2.6</version>
        <executions>
            <execution>
                <id>copy-resources</id>
                <phase>process-resources</phase>
                <goals>
                    <goal>copy-resources</goal>
                </goals>
                <configuration>
                    <outputdirectory>${basedir}/target/scripts</outputdirectory>
                    <resources>
                        <resource>
                            <directory>src/main/resources/scripts</directory>
                            <filtering>true</filtering>
                        </resource>
                    </resources>
                    <filters>
                        <filter>${basedir}/src/main/resources/configuration.properties</filter>
                    </filters>
                </configuration>
            </execution>
        </executions>
    </plugin>

    用这个插件,我们可以过滤包含在src/main/resources/scripts这个目录中的脚本。使用${basedir}/src/main/resources/configuration.properties这个文件中的属性进行替换。

    最后添加一些 Maven属性到pom.xml文件中:

    Maven Profiles

    <profiles>
        <profile>
            <id>install-driver</id>
            <properties>
                <cli.file>wildfly-install-postgre-driver.cli</cli.file>
            </properties>
        </profile>
    
        <profile>
            <id>remove-driver</id>
            <properties>
                <cli.file>wildfly-remove-postgre-driver.cli</cli.file>
            </properties>
        </profile>
    
        <profile>
            <id>install-wow-auctions</id>
            <properties>
                <cli.file>wow-auctions-install.cli</cli.file>
            </properties>
        </profile>
    
        <profile>
            <id>remove-wow-auctions</id>
            <properties>
                <cli.file>wow-auctions-remove.cli</cli.file>
            </properties>
        </profile>
    </profiles>

    Wildfly Script Files

    添加驱动

    添加驱动的脚本:

    wildfly-install-postgre-driver.cli

    # Connect to Wildfly instance
    connect
    
    # Create Oracle JDBC Driver Module
    # If the module already exists, Wildfly will output a message saying that the module already exists and the script exits.
    module add 
        --name=org.postgre 
        --resources=${settings.localRepository}/org/postgresql/postgresql/9.3-1102-jdbc41/postgresql-9.3-1102-jdbc41.jar 
        --dependencies=javax.api,javax.transaction.api
    
    # Add Driver Properties
    /subsystem=datasources/jdbc-driver=postgre: 
        add( 
            driver-name="postgre", 
            driver-module-name="org.postgre")

    数据库驱动作为Wildfly的一个模块(Module)。这样数据库驱动可以被部署在服务器中的所有应用使用。使用${settings.localRepository} 配置,我们指定数据库驱动下载到你的本地Maven仓库。还记得我们加到 Wildfly Maven Plugin的依赖吗,在你插件运行的时候他将下载驱动并加到服务器中。要运行脚本(必须保证应用服务器正在运行中)可以执行下面的命令:

    mvn process-resources wildfly:execute-commands -P "install-driver"

    需要用process-resources生命周期替换脚本中的属性。在这个例子中 ${settings.localRepository} 被替换为 /Users/radcortez/.m3/repository/. 。检查target/scripts 文件夹。在运行命令后,可以在Maven的日志看到以下输出:

    {"outcome" => "success"}

    服务器上的日志:

    INFO  [org.jboss.as.connector.subsystems.datasources] (management-handler-thread - 4) JBAS010404: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.3)
    INFO  [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-4) JBAS010417: Started Driver service with driver-name = postgre

    wildfly-remove-postgre-driver.cli

    # Connect to Wildfly instance
    connect
    
    if (outcome == success) of /subsystem=datasources/jdbc-driver=postgre:read-attribute(name=driver-name)
    
        # Remove Driver
        /subsystem=datasources/jdbc-driver=postgre:remove
    
    end-if
    
    # Remove Oracle JDBC Driver Module
    module remove --name=org.postgre

    这段脚本是把驱动从你的服务器上删除。允许 mvn wildfly:execute-commands -P “remove-driver”,如果你已经执行了以前的命令就不需要再配置process-resource,除非脚本发生改变。

    添加数据源

    wow-auctions-install.cli

    这个脚本使用命令添加了一个数据源

    wow-auctions-install.cli

    # Connect to Wildfly instance
    connect
    
    # Create Datasource
    /subsystem=datasources/data-source=WowAuctionsDS: 
        add( 
        	jndi-name="${datasource.jndi}", 
        	driver-name=postgre, 
        	connection-url="${datasource.connection}", 
        	user-name="${datasource.user}", 
        	password="${datasource.password}")
    
    /subsystem=ee/service=default-bindings:write-attribute(name="datasource", value="${datasource.jndi}")

    我们依然需要一个文件来定义这些属性。

    configuration.properties

    datasource.jndi=java:/datasources/WowAuctionsDS
    datasource.connection=jdbc:postgresql://localhost:5432/wowauctions
    datasource.user=wowauctions
    datasource.password=wowauctions

    Java EE 7 默认数据源

    Java EE 7中, 指定容器必须提供一个默认数据源。不要在程序中使用 java:/datasources/WowAuctionsDS JNDI 定义的数据源,我们将指定一个新创建的数据源 /subsystem=ee/service=default-bindings:write- attribute(name=”datasource”, value=”${datasource.jndi}”)。 这样就无需改变程序中的任何配置。 执行 mvn wildfly:execute-commands -P “install-wow-auctions”,就可以得到以下输出:

    org.jboss.as.cli.impl.CommandContextImpl printLine
    INFO: {"outcome" => "success"}
    {"outcome" => "success"}
    org.jboss.as.cli.impl.CommandContextImpl printLine
    INFO: {"outcome" => "success"}
    {"outcome" => "success"}

    服务器日志:

    INFO  [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-1) JBAS010400: Bound data source

    wow-auctions-remove.cli

    # Connect to Wildfly instance
    connect
    
    # Remove Datasources
    /subsystem=datasources/data-source=WowAuctionsDS:remove
    
    /subsystem=ee/service=default-bindings:write-attribute(name="datasource", value="java:jboss/datasources/ExampleDS")

    上面是删除数据源转为Java EE 7 默认数据源的脚本。执行时用这个命令:mvn wildfly:execute-commands -P "remove-wow-auctions"。

    总结

    这篇博客展示了如何自动在Wildfly实例中添加删除添加驱动和数据源。如果需要在不同数据库之间切换或者打算重头配置服务器,ITJS的这篇文章的内容会对你非常有帮助。在做持续集成(CI)时,这些脚本稍作调整就可以转到其他驱动。

    你可以在这里得到代码WoW Auctions Github repo。

    祝编程愉快!

    上一篇返回首页 下一篇

    声明: 此文观点不代表本站立场;转载务必保留本文链接;版权疑问请联系我们。

    别人在看

    Destoon 模板存放规则及语法参考

    Destoon系统常量与变量

    Destoon系统目录文件结构说明

    Destoon 系统安装指南

    Destoon会员公司主页模板风格添加方法

    Destoon 二次开发入门

    Microsoft 将于 2026 年 10 月终止对 Windows 11 SE 的支持

    Windows 11 存储感知如何设置?了解Windows 11 存储感知开启的好处

    Windows 11 24H2 更新灾难:系统升级了,SSD固态盘不见了...

    小米路由器买哪款?Miwifi热门路由器型号对比分析

    IT头条

    Synology 对 Office 套件进行重大 AI 更新,增强私有云的生产力和安全性

    01:43

    StorONE 的高效平台将 Storage Guardian 数据中心占用空间减少 80%

    11:03

    年赚千亿的印度能源巨头Nayara 云服务瘫痪,被微软卡了一下脖子

    12:54

    国产6nm GPU新突破!砺算科技官宣:自研TrueGPU架构7月26日发布

    01:57

    公安部:我国在售汽车搭载的“智驾”系统都不具备“自动驾驶”功能

    02:03

    技术热点

    最全面的前端开发指南

    Windows7任务栏桌面下角的一些正在运行的图标不见了

    sql server快速删除记录方法

    SQL Server 7移动数据的6种方法

    SQL Server 2008的新压缩特性

    每个Java程序员必须知道的5个JVM命令行标志

      友情链接:
    • IT采购网
    • 科技号
    • 中国存储网
    • 存储网
    • 半导体联盟
    • 医疗软件网
    • 软件中国
    • ITbrand
    • 采购中国
    • CIO智库
    • 考研题库
    • 法务网
    • AI工具网
    • 电子芯片网
    • 安全库
    • 隐私保护
    • 版权申明
    • 联系我们
    IT技术网 版权所有 © 2020-2025,京ICP备14047533号-20,Power by OK设计网

    在上方输入关键词后,回车键 开始搜索。Esc键 取消该搜索窗口。