大多数Java EE应用程序在其业务逻辑中使用数据库访问,因此开发人员经常面临在应用程序服务器中配置驱动程序和数据库连接属性的需求。 在本文中,我们将使用Maven为JBoss / Wildfly和Postgre数据库自动化该任务。 这项工作是根据我从以前的魔兽拍卖批量应用世界岗位 。

Maven配置

首先,将以下内容添加到我们的pom.xml

Wildfly Maven插件

org.wildfly.pluginswildfly-maven-plugin1.0.2.Finalfalseorg.postgresqlpostgresql9.3-1102-jdbc41

我们将使用Wildfly Maven插件在应用程序服务器中使用命令执行脚本。 请注意,我们还向Postgre驱动程序添加了一个依赖项。 这是供Maven下载依赖项,因为稍后我们将需要它来将其添加到服务器。 还有一个${cli.file}属性将分配给配置文件。 这是为了指示我们要执行哪个脚本。

让我们还将以下内容添加到pom.xml

Maven资源插件

org.apache.maven.pluginsmaven-resources-plugin2.6copy-resourcesprocess-resourcescopy-resources${basedir}/target/scriptssrc/main/resources/scriptstrue${basedir}/src/main/resources/configuration.properties 

使用Resources Maven插件,我们将过滤src/main/resources/scripts包含的脚本文件,并将它们替换为${basedir}/src/main/resources/configuration.properties文件中包含的属性。

最后,使用我们要运行的脚本将一些Maven配置文件添加到pom.xml

Maven个人资料

install-driverwildfly-install-postgre-driver.cliremove-driverwildfly-remove-postgre-driver.cliinstall-wow-auctionswow-auctions-install.cliremove-wow-auctionswow-auctions-remove.cli

Wildfly脚本文件

添加驱动

带有用于添加驱动程序的命令的脚本:

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 。 在这种情况下,驱动程序可广泛用于服务器中部署的所有应用程序。 使用${settings.localRepository}我们指向下载到本地Maven存储库的数据库驱动程序jar。 还记得我们添加到Wildfly Maven插件中的依赖吗? 当您运行插件时,将下载驱动程序并将其添加到服务器。 现在,要运行我们执行的脚本(您需要运行应用程序服务器):

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-删除-postgre-driver.cli

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

该脚本用于从应用程序服务器中删除驱动程序。 执行mvn wildfly:execute-commands -P "remove-driver" 。 如果您之前已经执行过命令,则不需要process-resources ,除非您更改了脚本。

添加数据源

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指定容器应提供默认的数据源。 与其在应用程序中定义JNDI名称java:/datasources/WowAuctionsDS将新创建的数据源指向具有/subsystem=ee/service=default-bindings:write-attribute(name="datasource", value="${datasource.jndi}") 。 这样,我们无需在应用程序中进行任何更改。 使用mvn wildfly:execute-commands -P "install-wow-auctions"执行脚本。 您应该获得以下Maven输出:

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实例添加/删除驱动程序以及如何添加/删除数据源。 如果要在数据库之间切换,或者要从头开始配置服务器,这将很有用。 考虑一下CI环境。 这些脚本也可以轻松调整为其他驱动程序。

  • 您可以从使用此设置的WoW Auctions Github存储库中获取代码。

请享用!

翻译自: https://www.javacodegeeks.com/2014/10/configure-jboss-wildfly-datasource-with-maven.html

使用Maven配置JBoss / Wildfly数据源相关推荐

  1. jboss maven_使用Maven配置JBoss / Wildfly数据源

    jboss maven 大多数Java EE应用程序在其业务逻辑中使用数据库访问,因此开发人员经常面临在应用程序服务器中配置驱动程序和数据库连接属性的需求. 在本文中,我们将使用Maven为JBoss ...

  2. Jboss/Wildfly安装配置

    Jboss/Wildfly安装配置 官方网站: http://wildfly.org/ http://www.jboss.org/products/eap/overview/ http://www.o ...

  3. JBoss/Wildfly 配置SQLserver服务器

    JBoss/Wildfly 配置SQLserver服务器 http://blog.csdn.net/haitaolang/article/details/60467118 wildfly standa ...

  4. 在NetBeans,Eclipse,IntelliJ,OpenShift和Maven上使用WildFly 9

    WildFly 9 CR1是最近发布的. 包括许多很酷的功能: 智能负载均衡 HTTP / 2和SPDY支持 新的离线CLI模式 正常关闭单节点 新的仅Servlet发行版 而且这超出了通常的Java ...

  5. 如何加密 WildFly 数据源密码

    在本教程中,我们将学习如何在WildFly数据源中加密数据源密码. 步骤 1:生成散列密码 为了做到这一点,我们可以使用一个名为SecureIdentityLoginModule的类,它是Pictte ...

  6. ssm框架mysql配置_ssm框架使用详解配置两个数据源

    学习ssm框架已经快一年了,今天把这个框架总结一下. SSM 就是指 spring.SpringMVC和Mybatis.先说一下基本概念(百度上搜的) 1.基本概念 1.1.Spring Spring ...

  7. JBoss Wildfly 8.1上的HawtIO

    HawtIO为基于JVM的中间件提供了令人赞叹的视觉效果. 它是应用程序的统一控制台,否则将不得不构建自己的糟糕的Web控制台. 老实说,它们的构建方式各不相同,技术不同,用户体验不同,并且都围绕一种 ...

  8. 使用IDEA+maven配置SSM项目步骤,以及配置项目过程中遇到的各种坑(SSM配置文件加载问题,使用注解开发问题,maven开发SSM项目步骤)

    问题概览 1. 更改springmvc配置文件的默认位置,但是"classpath:文件路径",路径明明正确,但是就是识别不到,idea报找不到配置文件的错误. 2. 使用myba ...

  9. SpringBoot2/SpringBoot/Java动态数据源配置、动态连接池配置、多数据源负载均衡

    Java动态数据源配置.动态连接池配置.多数据源负载均衡 大家好,今天给大家推荐一个自产的连接池插件.废话不多说,本文接口分为以下主题: 1. 插件开发背景: 2. 插件提供的能力: 3. 插件的使用 ...

最新文章

  1. Ubuntu 安装 CUDA 和 cuDNN 详细步骤
  2. 分析分布式服务框架理论介绍
  3. Linux下第一个java程序没有成功
  4. 详解「递归」正确的打开方式
  5. 数据挖掘 —— 数据预处理
  6. python 单例模式的四种实现方法
  7. preparedstatement打印sql语句_Mybatis是这样防止sql注入的
  8. 嵌入网站的挖矿代码——Monerominer.rocks
  9. shell 编程中的判断
  10. 使用alias简化命令输入
  11. Object C中创建线程的方法有NSThread,GCD, NSOperation
  12. java实现堆栈排序_Java代码为例讲解堆的性质和基本操作以及排序方法
  13. 饥荒服务器运行时cpu的占用,饥荒联机版服务器卡顿原因分析及解决教程_饥荒联机版服务器卡顿怎么解决_游戏堡...
  14. “二十一天好习惯”第一期-20
  15. 00018计算机应用基础2021,2021年全国自考10月00018计算机应用基础历年试题含答案.doc...
  16. js实现审批流_顺序审批流的简单代码实现
  17. 计算机使用技巧大全 书,总算明白电脑使用技巧大全
  18. win7系统未响应卡住_win7程序未响应经常死机原因及处理方法
  19. word文档中的毕业论文的页眉与页脚设置
  20. 4.2 APIC 虚拟化

热门文章

  1. 使用ueditor实现多图片上传案例——ServiceImpl层(ShoppingServiceImpl)
  2. springboot:BeanPostProcessor示例及分析
  3. 机器学习评价指标大汇总
  4. vue 实现 js css html分离
  5. Servlet其他关联类---ServletConfig类
  6. java使用:: 表达式_Java 13:切换表达式的增强功能
  7. java 开发人员工具_每个Java开发人员都应该知道的10个基本工具
  8. java8 streams_Java SE 8新功能介绍:使用Streams API处理集合
  9. jdk8 字符串_在JDK 8中连接字符串
  10. r 数据框选子集_在带有组合框的值列表的下拉列表中显示显示属性的子集