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

jboss maven

大多数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

jboss maven

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/339112.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

globalmapper如何选取图像上的点_OpenCV 进阶应用,用编程手段搞定图像处理

在我们生活中,常见的图像处理软件有Adobe Photoshop、Adobe Illustrator等。然而,并非只有软件才能实现图像处理,通过编程手段也是能实现的!通过编程手段实现图像处理,也就是计算机视觉。所谓计算机视觉,就…

pytorch relu函数实现_什么是pytorch?

PyTorch是一个:机器学习框架,简单易学可以看做是支持GPU计算和自动微分计算的“Numpy”库支持100多种Tensor常规算子,包括:创建、索引、切片、转置、连接、随机数、形状改变,线性代数、数学计算Tensor是一个有值有属性…

C sort 排序函数用法

最近在刷ACM经常用到排序,以前老是写冒泡,可把冒泡带到OJ里后发现经常超时,所以本想用快排,可是很多学长推荐用sort函数,因为自己写的快排写不好真的没有sort快,所以毅然决然选择sort函数用法1、sort函数可…

python人脸_Python 使用 face_recognition 人脸识别

Python 使用 face_recognition 人脸识别 人脸识别 face_recognition 是世界上最简单的人脸识别库。 使用 dlib 最先进的人脸识别功能构建建立深度学习,该模型准确率在99.38%。 Python模块的使用 Python可以安装导入 face_recognition 模块轻松操作,对于简…

osgi 如何引入包_OSGi Testsuite:引入类名过滤器

osgi 如何引入包OSGi Testsuite是一个JUnit测试运行程序 ,它动态地收集要执行的测试类。 它已经由我的同伴Rdiger大约一年前出版,并且已经在某些项目中证明有用。 但是对于gonsole,我们必须使用一个难看的补丁,因为1.0版仅支持.*T…

C语言,一把菜刀。

C 与 C 的真正区别在哪里?C是中餐厨师的菜刀,做啥菜就那一把刀,切菜切肉切鱼,都是这一把刀,刀工好的师傅,豆腐都能切成一朵花。无论你提什么概念,都能用指针给你做出来,如果不行&…

查询计算机专业及选修了英语的学生,实验五 数据库综合查询(学生)

实验五 数据库综合查询一、实验目的1. 掌握SELECT语句的基本语法和查询条件表示方法; 2. 掌握查询条件种类和表示方法; 3. 掌握连接查询的表示及使用; 4. 掌握嵌套查询的表示及使用; 5. 了解集合查询的表示及使用。二、实验内容1.…

python读取写入文件_Python文件读写保存操作

记录下第一次使用Python读写文件的过程,虽然很简单,第一次实现其实也有些注意的事项。 单个文件的读操作: 我们先假设一个需求如下: 读取一个test.txt文件 删除指定字符之前的文本 需求明白之后,下面开始动手写代码&am…

css中设置br标签之后的样式_CSS学习

语法:选择器,声明(由一个属性和一个值)注释:/* */选择器:1. id选择器,class选择器2. 组和选择3. 属性选择创建:外部样式表html <head> <link rel"stylesheet" type"text/css" href"mystyle.css"> </head>内部样式表html <h…

eclipse扩展点_Eclipse扩展点评估变得容易

eclipse扩展点编码Eclipse扩展点评估有点冗长&#xff0c;而且很少能自我解释。 当我最近忙于自己忙于这个话题时&#xff0c;我写了一个小助手&#xff0c;目的是减少通用编程步骤的样板代码&#xff0c;同时增加开发指导和可读性。 它原来是不容易找到一个表现的解决方案&am…

扯淡!C语言怎么可能被淘汰呢?

“第一门编程语言学C靠谱吗&#xff1f;”“C还有未来吗&#xff1f;”“我应该考虑学C吗&#xff1f;”“C太老了吧&#xff01;”你是否也听过类似的话语&#xff1f;听说过无数次&#xff0c;有些是面对面的交谈&#xff0c;而有些来自某个论坛。虽然答案无非是“取决于具体…

如何正确运用计算机技术,如何正确认识与运用计算机网络技术.doc

如何正确认识与运用计算机网络技术如何正确认识与运用计算机网络技术摘要&#xff1a;正如每个人所见&#xff0c;在中国当前的形势下&#xff0c;从小培养计算机网络技术人才还是个薄弱环节。作为中小学计算机网络技术教师的我们必须在透彻了解本校或本地区学生对计算机网络技…

google账号解除游戏绑定_附方法!关于物联卡手机号的绑定与解绑

我们在使用物联卡时第一步都知道绑定手机号&#xff0c;只有绑定了手机号我们才能进行正常的充值、续费、查询等日常操作&#xff0c;当我们不再使用这些物联卡时&#xff0c;你知道怎么解绑吗&#xff1f;今天&#xff0c;我们以中国移动物联卡为例&#xff0c;咱们来看一下移…

elasticsearch原理_花几分钟看一下Elasticsearch原理解析与性能调优

基本概念定义一个分布式的实时文档存储&#xff0c;每个字段 可以被索引与搜索一个分布式实时分析搜索引擎能胜任上百个服务节点的扩展&#xff0c;并支持 PB 级别的结构化或者非结构化数据用途全文检索结构化搜索分析VS传统数据库传统数据库提供精确匹配ES提供精确匹配全文检索…

spark wai_WAI-ARIA对自动完成小部件的支持

spark wai在这篇文章中&#xff0c;我想讨论一个AutoComplete小部件的可访问性。 在您键入该字段时&#xff0c;通常会使用“自动完成”窗口小部件提供建议。 在当前的工作中&#xff0c;我基于Twitter的Typeahead &#xff08;一个灵活JavaScript库&#xff09;实现了JSF组件&…

快速学习C语言的途径,让你少走弯路!

1标准C语言能干什么&#xff1f;坦白讲&#xff0c;在今天软件已经发展了半个多世纪&#xff0c;单纯的C语言什么都干不了。标准C语言库只提供了一些通用的逻辑运算方法以及字符串处理&#xff0c;当然字符串在C语言看来也是一种操作内存的方法&#xff0c;所以单纯的C什么都做…

计算机基础教育学,计算机基础教育教学改革与创新

计算机基础教育教学改革与创新伴随《国家中长期教育改革和发展规划纲要(2010-2020)》的颁布,我国计算机基础教育进入一个新的发展阶段,对计算机基础教育"面向应用、能力导向、注重素质"指导思想的深入研究和实践是深化计算机基础教育教学改革的切入点。下面是小编搜集…

南京python基础教程_南京Python课程价格

1.每个算法模块按照“原理讲解→分析数据→自己动手实现→特征与调参”的顺序。 2.“Python数据清洗和特征提取”&#xff0c;提升学习深度、降低学习坡度。 3.增加网络爬虫的原理和编写&#xff0c;从获取数据开始&#xff0c;重视将实践问题转换成实际模型的能力&#xff0c;…

neo4j 嵌入式_在嵌入式Neo4j中使用Neo4j浏览器

neo4j 嵌入式有时&#xff0c;您有一个应用程序以嵌入式模式使用Neo4j&#xff0c;但还需要使用Neo4j Web浏览器来处理图形。 由于一次最多只能从一个进程访问数据库&#xff0c;因此在嵌入式Neo4j应用程序运行时尝试启动Neo4j服务器将不起作用。 WrappingNeoServerBootstrapp…

C语言学习趣事_你不知道的C语言应用

一、引我一直不明白“文人相轻”是什么意思&#xff0c;也许就是说&#xff1a;文人清客之间互相瞧不起的事情吧。但对于我来说&#xff0c;文人相轻就是表示&#xff1a;无知者无畏。无论你的某一方面的语言学的怎么样&#xff0c;怎么样的牛逼&#xff0c;你可以眼光狭窄&…