跟我上“云”端(三)eclipselink+jboss实现多租户基本配置
2015-07-31 16:01
477 查看
本文主要介绍,如何在jboss EAP6.2中使用eclipselink
开发工具:jboss EAP6.2+maven
eclipselink版本:2.6.0
下载完成以后解压,并使用maven编译,解压后的文件:
查看其中的pom.xml文件:
其中properties结点中加入自己想使用的eclipselink版本,并修改 eclipselink.version为自己定义的版本:
如原文件:
修改后:
使用命令窗口进入到此目录,执行命令:
运行完以后生成target目录如下:
拷贝target/as7module目录下id和org两个文件夹到$JBOSS_HOME/modules/system/layers/base目录下(如果已经存在org目录,就合并)
启动jboss,执行
执行如下命令:
执行完会发现在standalone.xml文件中多出如下配置:
此时可以一起设置eclipselink.target-server执行:
当进行第一步的设置以后实体就可以自动被扫描。
确切的说,如何设置静态织入取决于你使用的构件插件,如果你使用的是Ant,eclipselink提供了一个Ant的任务,org.eclipse.persistence.tools.weaving.jpa.StaticWeaveAntTask. 如果你使用的是maven,可以使用maven的静态织入插件,这个插件不属于eclipselink项目。
你还需要在persistence.xml文件中添加如下属性:
到此你就可以使用eclipselink开发你的企业级多租户项目了。
开发工具:jboss EAP6.2+maven
eclipselink版本:2.6.0
添加eclipselink的module
使用预包装的集成库,下载地址:(eclipselink+jobss EAP6.2集成module)下载完成以后解压,并使用maven编译,解压后的文件:
查看其中的pom.xml文件:
其中properties结点中加入自己想使用的eclipselink版本,并修改 eclipselink.version为自己定义的版本:
如原文件:
[code]<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <eclipselink.version.2.3.stable>2.3.2</eclipselink.version.2.3.stable> <eclipselink.version.2.3.milestone>2.3.3-M3</eclipselink.version.2.3.milestone> <eclipselink.version.2.4.milestone>2.4.0</eclipselink.version.2.4.milestone> <eclipselink.version>${eclipselink.version.2.4.milestone}</eclipselink.version> <jboss-version>7.1.1.Final</jboss-version> <as7module.srcdir>${project.basedir}/src/main/as7module</as7module.srcdir> <as7module.destdir>${project.build.directory}/as7module</as7module.destdir> <ECLIPSELINK_JAR_NAME>eclipselink-${eclipselink.version}.jar</ECLIPSELINK_JAR_NAME> <INTEGRATION_JAR_NAME>${project.artifactId}-${project.version}.${project.packaging}</INTEGRATION_JAR_NAME> </properties>
修改后:
[code]<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <eclipselink.version.2.3.stable>2.3.2</eclipselink.version.2.3.stable> <eclipselink.version.2.3.milestone>2.3.3-M3</eclipselink.version.2.3.milestone> <eclipselink.version.2.4.milestone>2.4.0</eclipselink.version.2.4.milestone> <eclipselink.version.2.6.milestone>2.6.0</eclipselink.version.2.6.milestone> <eclipselink.version>${eclipselink.version.2.6.milestone}</eclipselink.version> <jboss-version>7.1.1.Final</jboss-version> <as7module.srcdir>${project.basedir}/src/main/as7module</as7module.srcdir> <as7module.destdir>${project.build.directory}/as7module</as7module.destdir> <ECLIPSELINK_JAR_NAME>eclipselink-${eclipselink.version}.jar</ECLIPSELINK_JAR_NAME> <INTEGRATION_JAR_NAME>${project.artifactId}-${project.version}.${project.packaging}</INTEGRATION_JAR_NAME> </properties>
使用命令窗口进入到此目录,执行命令:
[code]mvn -DskipTests clean install
运行完以后生成target目录如下:
拷贝target/as7module目录下id和org两个文件夹到$JBOSS_HOME/modules/system/layers/base目录下(如果已经存在org目录,就合并)
启动jboss,执行
[code] $JBOSS_HOME/bin/jboss-cli.bat --connect
执行如下命令:
[code]/system-property=eclipselink.archive.factory:add(value=id.au.ringerc.as7.eclipselinkintegration.JBossArchiveFactoryImpl)
执行完会发现在standalone.xml文件中多出如下配置:
[code] <system-properties> <property name="eclipselink.archive.factory" value="id.au.ringerc.as7.eclipselinkintegration.JBossArchiveFactoryImpl"/> </system-properties>
此时可以一起设置eclipselink.target-server执行:
[code] /system-property=eclipselink.target-server:add(value=JBoss)
设置eclipselink.target-server
在persistence.xml中删除原有hibernate的配置,添加下面的provider和property[code]<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> <property name="eclipselink.target-server" value="JBoss"/>
设置实体自动扫描
如果不进行任何配置默认情况下需要在persistence.xml中列出你系统中的所有的实体,如下:[code]<class>mtsample.hotel.model.RentHistory</class> <class>mtsample.hotel.model.HotelGuest</class> <class>mtsample.hotel.model.Tenant</class> <class>mtsample.hotel.model.Room</class> <class>mtsample.hotel.model.Category</class> <class>mtsample.hotel.model.HotelAdmin</class> ……
当进行第一步的设置以后实体就可以自动被扫描。
设置静态织入(static weaving),使实体支持继承。
什么时候需要实体继承,这其实是个很常用的功能,实体中会有一些通用的属性,比如id,或者时间戳,但是使用eclipselink的实体继承时,由于某些原因会不能在运行时动态织入,需要配置在编译时静态织入。确切的说,如何设置静态织入取决于你使用的构件插件,如果你使用的是Ant,eclipselink提供了一个Ant的任务,org.eclipse.persistence.tools.weaving.jpa.StaticWeaveAntTask. 如果你使用的是maven,可以使用maven的静态织入插件,这个插件不属于eclipselink项目。
[code]<build> <plugins> <plugin> <groupId>au.com.alderaan</groupId> <artifactId>eclipselink-staticweave-maven-plugin</artifactId> <version>1.0.3</version> <executions> <execution> <phase>process-classes</phase> <goals> <goal>weave</goal> </goals> <configuration> <persistenceXMLLocation>META-INF/persistence.xml</persistenceXMLLocation> <logLevel>FINE</logLevel> </configuration> </execution> </executions> <dependencies> <dependency> <groupId>org.eclipse.persistence</groupId> <artifactId>eclipselink</artifactId> <version>2.6.0</version> </dependency> </dependencies> </plugin> </plugins> </build>
你还需要在persistence.xml文件中添加如下属性:
[code]<property name="eclipselink.weaving" value="static"/>
到此你就可以使用eclipselink开发你的企业级多租户项目了。
本文翻译参考了:
https://developer.jboss.org/wiki/HowToUseEclipseLinkWithAS7?_sscc=t相关文章推荐
- Java编程思想重点笔记(Java开发必看)
- struts2 下载文件
- Eclipse 下如何将另一个工程当做目前工程的库
- JAVA 集合遍历的方法
- 自己整理的js调用安卓Java的方法
- (LeetCode)Implement strStr()
- Webx autoconfig 多环境打包 使用总结
- 高质量JAVA代码编写规范
- java缓存(1、概述)
- java web项目里ehcache.xml介绍
- Java链接Access工具类
- Java读Access出现乱码
- 使用工具开发Struts项目
- 使用手动配置方式开发一个Struts项…
- MyEclipse怎样注册
- 使用jstl标签时MyEclipse报错core&nbsp;…
- 使用Eclipse或MyEclipse连接访问数…
- Java中字符串和Date类型相互转换
- 接收从Eclipse的控制台中输入的参…
- 将服务器集成到MyEclipse中,这样…