使用Maven配置JBoss、Wildfly数据源

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

创新互联公司专注于城关网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供城关营销型网站建设,城关网站制作、城关网页设计、城关网站官网定制、小程序开发服务,打造城关网络公司原创品牌,更为您提供城关网站排名全网营销落地服务。

Maven 配置

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

Wildfly Maven Plugin

 
 
  1.  
  2.     org.wildfly.plugins 
  3.     wildfly-maven-plugin 
  4.     1.0.2.Final 
  5.      
  6.          
  7.             false 
  8.             %MINIFYHTML7db47c7a4774fb3aa46c5ca8120866ec8% 
  9.          
  10.      
  11.      
  12.          
  13.             org.postgresql 
  14.             postgresql 
  15.             9.3-1102-jdbc41 
  16.          
  17.      
  18.  

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

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

Maven Resources Plugin

 
 
  1.  
  2.     org.apache.maven.plugins 
  3.     maven-resources-plugin 
  4.     2.6 
  5.      
  6.          
  7.             copy-resources 
  8.             process-resources 
  9.              
  10.                 copy-resources 
  11.              
  12.              
  13.                 ${basedir}/target/scripts 
  14.                  
  15.                      
  16.                         src/main/resources/scripts 
  17.                         true 
  18.                      
  19.                  
  20.                  
  21.                     ${basedir}/src/main/resources/configuration.properties 
  22.                  
  23.              
  24.          
  25.      
  26.  

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

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

Maven Profiles

 
 
  1.  
  2.      
  3.         install-driver 
  4.          
  5.             wildfly-install-postgre-driver.cli 
  6.          
  7.      
  8.  
  9.      
  10.         remove-driver 
  11.          
  12.             wildfly-remove-postgre-driver.cli 
  13.          
  14.      
  15.  
  16.      
  17.         install-wow-auctions 
  18.          
  19.             wow-auctions-install.cli 
  20.          
  21.      
  22.  
  23.      
  24.         remove-wow-auctions 
  25.          
  26.             wow-auctions-remove.cli 
  27.          
  28.      
  29.  

Wildfly Script Files

添加驱动

添加驱动的脚本:

wildfly-install-postgre-driver.cli

 
 
  1. # Connect to Wildfly instance 
  2. connect 
  3.  
  4. # Create Oracle JDBC Driver Module 
  5. # If the module already exists, Wildfly will output a message saying that the module already exists and the script exits. 
  6. module add \ 
  7.     --name=org.postgre \ 
  8.     --resources=${settings.localRepository}/org/postgresql/postgresql/9.3-1102-jdbc41/postgresql-9.3-1102-jdbc41.jar \ 
  9.     --dependencies=javax.api,javax.transaction.api 
  10.  
  11. # Add Driver Properties 
  12. /subsystem=datasources/jdbc-driver=postgre: \ 
  13.     add( \ 
  14.         driver-name="postgre", \ 
  15.         driver-module-name="org.postgre") 

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

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

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

 
 
  1. {"outcome" => "success"} 

服务器上的日志:

 
 
  1. INFO  [org.jboss.as.connector.subsystems.datasources] (management-handler-thread - 4) JBAS010404: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.3) 
  2. 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

 
 
  1. # Connect to Wildfly instance 
  2. connect 
  3.  
  4. if (outcome == success) of /subsystem=datasources/jdbc-driver=postgre:read-attribute(name=driver-name) 
  5.  
  6.     # Remove Driver 
  7.     /subsystem=datasources/jdbc-driver=postgre:remove 
  8.  
  9. end-if 
  10.  
  11. # Remove Oracle JDBC Driver Module 
  12. module remove --name=org.postgre 

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

添加数据源

wow-auctions-install.cli

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

wow-auctions-install.cli

 
 
  1. # Connect to Wildfly instance 
  2. connect 
  3.  
  4. # Create Datasource 
  5. /subsystem=datasources/data-source=WowAuctionsDS: \ 
  6.     add( \ 
  7.         jndi-name="${datasource.jndi}", \ 
  8.         driver-name=postgre, \ 
  9.         connection-url="${datasource.connection}", \ 
  10.         user-name="${datasource.user}", \ 
  11.         password="${datasource.password}") 
  12.  
  13. /subsystem=ee/service=default-bindings:write-attribute(name="datasource", value="${datasource.jndi}") 

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

configuration.properties

 
 
  1. datasource.jndi=java:/datasources/WowAuctionsDS 
  2. datasource.connection=jdbc:postgresql://localhost:5432/wowauctions 
  3. datasource.user=wowauctions 
  4. 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”,就可以得到以下输出:

 
 
  1. org.jboss.as.cli.impl.CommandContextImpl printLine 
  2. INFO: {"outcome" => "success"} 
  3. {"outcome" => "success"} 
  4. org.jboss.as.cli.impl.CommandContextImpl printLine 
  5. INFO: {"outcome" => "success"} 
  6. {"outcome" => "success"} 

服务器日志:

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

wow-auctions-remove.cli

 
 
  1. # Connect to Wildfly instance 
  2. connect 
  3.  
  4. # Remove Datasources 
  5. /subsystem=datasources/data-source=WowAuctionsDS:remove 
  6.  
  7. /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 repo。

原文链接: javacodegeeks 翻译: ImportNew.com - 孙 彪彪
译文链接: http://www.importnew.com/13718.html

文章标题:使用Maven配置JBoss、Wildfly数据源
文章路径:http://www.gawzjz.com/qtweb/news5/175155.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联