当时方位: 主页 > > IBM > IBM软件 > 在IBM Rational开发产品设置构建时JPA增强的进程

在IBM Rational开发产品设置构建时JPA增强的进程

2014-05-08 11:01 来历:IBM 作者:末信 人气指数: 我要谈论

JPA 增强是修正实体类,增加监督它们之中的更改并耐久保存这些更改的才干的进程。在运用 IBM WebSphere Application Server 所供给的 OpenJPA 时,此增强进程运用了一种称为字节码织造 (byte-code weaving) 的技能。一般,关于 WebSphere Application Server,JPA (Java™ Persistence API) 实体的增强是在初始化 Java EE 运用程序期间履行的。

虽然不需求运用构建时增强,但它的确供给了必定的优势:

由于该增强不需求在每个发动期间完结,所以减少了的发动时刻。 假如 JPA 实体传递到 Java EE 运用程序外部,构建时增强可保证序列化或外部化的实体类与客户端中界说的类兼容。 虽然 JPA 一般会在将实体传递到客户端运用程序时将其序列化,但 JPA persistence.xml 文件中的一些设置(比方运用 openjpa.DetachState 特点的 loaded(DetachedStateField=true) 值)会导致 JPA “外部化” 该实体,而不是将它序列化。运用运转时增强时,这些实体只能供同样在完结运转时增强的客户端运用。这意味着客户端有必要包括一个 persistence.xml 文件,支撑同一个 JPA 运转时,并且在支撑运转时增强的环境中运转。运用构建时增强是一种更好的解决计划。

本文将介绍在运用 IBM Rational Application Developer 和 IBM WebSphere Application Server 时,配备 JPA 构建时增强所需履行的进程。虽然也有其他教程介绍构建时 JPA 增强的设置,但大部分或所有这些教材好像都要下载额定的 OpenJPA 库才干履行该功用。假如两个 OpenJPA 版别不是彻底相同,则或许导致出现问题。这儿描绘的进程仅运用了 WebSphere Application Server 供给的库,所以它们将一直兼容。

配备构建时增强

构建时增强的设置可经过 3 个首要进程轻松完结,下面几节将会介绍这些进程。

1. 创立 WebSphere Application Server 装置的引证

第一步是创立一个 classpath 变量来界说 WebSphere Application Server 的装置目录。

  1. 在 Rational Application Developer 中,从菜单栏导航到 Windows > Preferences。
  2. 在 Preferences 面板中,挑选 Java > Build Path > Classpath Variables。
  3. 单击 New 按钮。关于 Name 字段,输入 WAS_HOME。运用 Folder... 按钮找到 WebSphere Application Server 装置目录并单击 OK。(WebSphere Application Server 装置目录一般以 “AppServer” 结束。)现在单击 New Variable Entry 面板中的 OK(参见图 1)。

    图 1. New Variable Entry

  4. 点击这儿给我发音讯

2. 创立 build.xml 文件

build.xml 文件界说增强 JPA 实体所需的进程和引证。

  1. 右键单击 JPA 项目中的 src 文件夹并挑选 New > Other...
  2. 在 New 面板中的 General 文件夹下,挑选 File 并单击 Next(参见图 2)。

    图 2. 挑选一个导游

    在IBM Rational开发产品设置构建时JPA增强的进程

  3. 输入 build.xml 作为文件名,然后单击 Finish(参见图 3)。

    图 3. 创立一个新文件资源

    在IBM Rational开发产品设置构建时JPA增强的进程

  4. 将清单 1 中所示的代码刺进到 build.xml 文件中,以用作起点。

    清单 1. build.xml

    <project  name="MyProject" default="defaultBuild">
       <!-- set global properties for this build -->
       <property  name="src" location="src"/> 
          <!-- Location of JPA entity .java files in relation to project -->
       <property  name="bin" location="src"/> 
          <!-- Location of JPA entity .class files in relation to project -->
    
       <target  name="enhance">
          <path  id="enhance.classpath">
             <pathelement  location="${was.home}/dev/JavaEE/j2ee.jar"/>
             <pathelement  location="${was.home}/plugins/com.ibm.ws.jpa.jar"/>
             <pathelement  location="${was.home}/plugins/com.ibm.ws.prereq.commons-collections.jar"/>
             <pathelement  location="${bin}"/>
                 <!-- Where the entity .class files are -->
             <pathelement  location="${src}/../../<project>/"/> 
                <!-- Use for reference to class outside this project if needed -->
          </path>
          <property  name="cp" refid="enhance.classpath"/>
          <echo  message="Classpath: ${cp}"/>
          <echo  message="Source:    ${src}"/>
          <echo  message="Bin:       ${bin}"/>
          <java  classname="org.apache.openjpa.enhance.PCEnhancer" 
                logError="true" failonerror="false" fork="true">
    
             <classpath  refid="enhance.classpath"/>
             <arg  value="-properties" />
             <arg  value="${src}/META-INF/persistence.xml" />
          </java>
       </target>
    
       <target  name="defaultBuild" depends="enhance"/>
    
    </project>
  5. 虽然上面的 build.xml 文件内容应合适大部分 JPA 项目,但您或许依然需求修正一些当地。例如:
    • src 特点方位值应指向项目中包括 Java 源文件的目录,该目录一般是 src 文件夹。
    • bin 特点方位值应指向项目中存储类文件的目录。在这个示例中,它们和 Java 源文件一同存储在 src 目录中。假如将类文件存储在不同的目录中,或许需求将该方位设置为 bin。
    • 假如从您的实体中引证了 JPA 项目外部的类,则需求为每个项目引证包括一个 pathelement。鄙人一步中,您将看到一个已供给的条目,可将其间的 <project> 替换为您引证的项目。您或许需求附加一个额定的目录,比方 bin/,具体情况取决于该项意图类文件的方位。假如没有 JPA 项目外部的引证,那么删去该 pathelement 行即可。
  6. 保存文件。

3. 创立 Ant 构建器

Ant 构建器是 Rational Application Developer 调用的一个使命,它将运用 build.xml 文件中的信息来增强 JPA 实体。

  1. 从菜单栏中挑选 Project > Properties。
  2. 在 Properties 面板中,挑选 Builders。
  3. 单击 New...按钮。在 Choose configuration type 对话框中,挑选 Ant Builder 并单击 OK。
  4. 更新 Edit Configuration 面板的 Main 选项卡中的以下字段(参见图 4)。(屏幕截图中的 JPA 项目称为 “TutorialJPA”。)
    • 供给一个称号,比方 AntBuilder 或任何您最喜欢的称号。
    • 关于 Buildfile,单击 Browse Workspace... 导航到您第 2 步中创立的 build.xml 文件。挑选 build.xml 文件并单击 OK。
    • 关于 Base Directory,单击 Browse Workspace... 来挑选 JPA 项目。单击 OK。
    • 在 Arguments 字段中,输入 "-Dwas.home=${WAS_HOME}"(包括引号)。这会将 build.xml 文件中运用的 was.home 变量衔接到类途径变量 WAS_HOME。
    • 不要单击 OK。

    图 4. 创立 Ant 构建配备

    在IBM Rational开发产品设置构建时JPA增强的进程

  5. 挑选 Targets 选项卡并更新这些字段(参见图 5):
    • 在 After a "Clean" 部分中,单击 Set Targets...。撤销挑选 DefaultBuild [default] 方针并单击 Set Targets 面板上的 OK。
    • 在 Manual Build 部分中,默许方针应已挑选。假如没有,则单击 Set Targets...。挑选 DefaultBuild [default] 方针并单击 Set Targets 面板上的 OK。
    • 在 Auto Build 部分中,单击 Set Targets...。挑选 DefaultBuild [default] 方针并单击 Set Targets 面板上的 OK。
    • 在 During a "Clean" 部分中,构建器应该现已被设置为不运转。

    图 5. 方针配备参数

    在IBM Rational开发产品设置构建时JPA增强的进程

  6. 单击 OK 保存新构建器。
  7. 现在单击 Properties 面板上的 OK。

您的构建时增强设置现在应已完结。您应在控制台窗口中看到清单 2 中所示的音讯,由于 Ant Builder 增强已主动运转。

清单 2. Ant 构建器音讯

Buildfile: C:\MyWorkspace\TutorialJPA\src\build.xml
Trying to override old definition of datatype description
Trying to override old definition of datatype artifact

enhance:
        [echo] Classpath: C:\Progra~2\IBM\WebSphere\AppServer\dev\JavaEE\j2ee.jar;C:
\Progra~2\IBM\WebSphere\AppServer\plugins\com.ibm.ws.jpa.jar;C:\Progra~2\IBM\WebSphere
\AppServer\plugins\com.ibm.ws.prereq.commons-collections.jar;C:\MyWorkspace\TutorialJPA.
\src;C:\MyWorkspace\ReferencedProject
        [echo] Source:    C:\MyWorkspace\TutorialJPA\src
        [echo] Bin:       C:\MyWorkspace\TutorialJPA\src
        [java] 62  testJpa  INFO   [main] openjpa.Tool - No targets were given.  Running 
on all classes in your persistent classes list, or all metadata files in classpath 
directories if you have not listed your persistent classes.  Use -help to display tool 
usage information.

defaultBuild:
BUILD SUCCESSFUL
Total time: 7 seconds

完毕语

经过完结本文中描绘的进程,您能够将 JPA 项目设置为在构建它时增强实体。完结该设置后,WebSphere Application Server 将不再需求在发动期间履行此操作。此外,对 JPA 实体的任何引证都会主动引证增强版别,以完结彻底兼容。

咱们感兴趣的内容
小伙伴独爱的新闻
小伙伴还重视了以下信息
小伙伴重视的焦点

小伙伴都在重视的抢手词

芈月传 老司机玩法 萌乐网 黑科技 坐骑揭秘 三国令 铁血皇城 竞技场攻略 书剑恩仇录 披风玩法 配备强化攻略 户外BOSS玩法 全网曝光 赤壁传说 半回合制国 ACT 哥们网 天书国际 奇珍商城 热血战歌 传奇瑰宝抽奖 门徒 范伟打天下 打开方式 门徒获取玩法 三大萌宠简介 新手攻略 挂机体系简介 资料副本 大海战 鸵鸟 大黑 热情玩法 门徒战力提高 万世 强化特点 上古降魔 提高战力 配备攻略 九阴绝学 质量引荐 老干妈 激战来袭 大黑游戏 新服亮点 福利多多 画江山 资料片 玩家 九阴真经 江湖儿女 实在场景 实际 虚拟 随机副本 风色轨道 听其自然 ppwan 神助攻 武林秘药 激活八大脉门 九霄劫变 猎命格 天问 大型PVP 花千骨 激战更尽兴 网易mumu 手游玩家 安卓模拟器 安卓 单挑群战 武侠传说 女神 孙尚香专访 胸猛抱团 新游 占山为王 跨服城战 蜀山战纪 剑雨江湖 攻略 实时VR交互 七大女神代言 酷炫走江湖 国际四大杀手 玩家专访 三国经典 大制造 好玩网页游戏 盘点 世界霸主 境地玩法 莽荒纪 勇闯难关 镜像副本 荒漠霸主 配备通晓 三大战役 鹌小彦奇谈