ajax获取数据异常:使用 IBM Rational Application Developer V7.5 中的 JPA Ajax 和 Dojo 工具开发 Web 2.0 应用程序

  介绍

  IBM® Rational® Application Developer for WebSphere Software V7.5 (以下简称 Rational Application Developer)以及后续版本为开发人员提供了新 Web 工具来构建带有 Ajax 特性(异步 Java™Script 和 XMLAsynchronous JavaScript and XML)EJB3 (Enterprise Java™ Beans 技术)和 Web 2.0 特性包 (Web 2.0 Feature Pack)运行在 IBM® WebSphere ®Application Servers 上应用本文将向您展示怎样快速使用 Rational Application Developer Web 工具应用这个附加特性包中包含新功能来构建个简单 Web 应用

  本文使用到技术包括:

  Java™ Persistence API (JPA)工具来访问个数据库

  Remote Procedure Call (RPC) Adapter 工具来将 JPA 思路方法作为 JavaScript Object Notation (JSON)-RPC Web 服务公布

  Dojo Web 开发工具

  先决条件

  如果您想要构建请确认您已经安装了以下工具 :

  IBM Rational Application Developer

  个能支持服务器下面 2者任选其:   WebSphere Application Server V6.1带有 EJB3 和 Web 2.0 特性包 (Web 2.0 Feature Packs)

  WebSphere Application Server V7.0带有 Web 2.0 特性包

  本文还解释了怎样使用 IBM WebSphere Application Server V7.0您也可以选择使用 WebSphere Application Server V6.1不过注意WebSphere Application Server V6.0 只支持 Web 2.0 特性包尚不支持 EJB3 特性包所有 3种 WebSphere 环境都和 Rational Application Developer 进行了捆绑

  范例介绍

  本文描述了您(作为个开发人员)怎样使用 Rational Application Developer 中包含个新 Web 工具来构建个端到端 Web 应用

  您可以创建个动态 Web 项目在这个 Web 项目中JPA 实体(JPA entities)和 JPA Manager beans 将从个举例数据库中创建RPC Adapter Service 将用于公布(来自 JPA Manager bean)个思路方法该 Manager bean 可以通过 http 地址访问并返回个结果该结果将作为 JSON 格式化

  在 Web 项目内个 Web 页面将使用 Rational Application Developer 工具来生成 RPC Adapter JSON 结果在运行时Web 页面将显示 Dojo 组件 JSON 结果中返回数据构建过程通过使用在下面章节中介绍 Rational Application Developer 工具可以简化

  构建端到端 Web2.0 应用

  您将会在个动态 Web 项目中构建作为范例

  创建个 Web 项目

  创建个新 Dynamic Web Project 和 EAR如图 1 所示:

  选择 File>New>Dynamic Web Project

  输入 MyWebProject 作为 Project Name

  选择 WebSphere Application Server V7.0 作为 Target Runtime   如果您正在应用于个远程 WebSphere Server选择运行时存根

  接受剩余其他地方默认设置

  点击 Finish

  如果成功切换至 Web 透视图

  图 1. New Dynamic Web Project 向导

使用 IBM Rational Application Developer V7.5 中<img src='/icons/806de.gif' /> JPA, Ajax 和 Dojo 工具开发 Web 2.0 应用<img src='/icons/806chengxu.gif' />

  Enterprise Explorer 视图中会显示出 Web 项目和 EAR 为了访问范例 Web 数据使用 JPA 工具来创建永久性实体首先向项目添加 JPA facet

  右键点击 Web 项目 MyWebProject 选择 Properties

  前进至 Project Facets 透视图

  检查 Java Persistence

  点击 OK

  添加 JPA facet 将会在 java 源 META-INF 文件夹下创建 JPA 配置 .xml 文件(persistence.xml和orm.xml) 如图 2 所示另外它创建了(在 Web 项目中)个顶级 JPA Content 节点该节点能够提供对 Persistence XML Editor 快速访问

  图 2. Web 项目中 JPA 内容

使用 IBM Rational Application Developer V7.5 中<img src='/icons/806de.gif' /> JPA, Ajax 和 Dojo 工具开发 Web 2.0 应用<img src='/icons/806chengxu.gif' />

  在生成 JPA 实体的前 向 Web 项目添加个数据库链接在本例中使用了 Derby Sample Database 您可以按照以下操作创建数据库链接:

  右键点击您 Web Project(MyWebProject))

  选择 Properties

  前进至 JDBC Connections 页面

  点击 New 按钮

  选择已经存在 Derby Sample Connection如图 3 所示

  图 3. 选择 Derby Sample Connection

使用 IBM Rational Application Developer V7.5 中<img src='/icons/806de.gif' /> JPA, Ajax 和 Dojo 工具开发 Web 2.0 应用<img src='/icons/806chengxu.gif' />

  点击 Finish

  Derby Sample Connection 出现在 Web Project properties JDBC Connection 页面中如图 4 所示Runtime 链接细节会显示出有关 JDBC 链接信息包括资源参考名数据源类名数据库名以及类位置 个资源参考会添加至 Web.xml(在 WebContent/WEB-INF 文件夹中)参考指向了资源参考名以及目标数据源这些都会在扩展 EAR 中自动得到配置

  图 4. 项目中 JDBC 链接中 Derby Sample Connection

使用 IBM Rational Application Developer V7.5 中<img src='/icons/806de.gif' /> JPA, Ajax 和 Dojo 工具开发 Web 2.0 应用<img src='/icons/806chengxu.gif' />

  该数据库链接可以被检查并在如图 5 所示 Data Source Explorer 视图下查看在该视图下列出了所有数据库链接通过展开每个数据库链接您可以检查数据库项目表格和列

  图 5. Data Source Explorer 视图

使用 IBM Rational Application Developer V7.5 中<img src='/icons/806de.gif' /> JPA, Ajax 和 Dojo 工具开发 Web 2.0 应用<img src='/icons/806chengxu.gif' />

  通过点击 OK 按钮来关闭 Web Project 属性对话框现在就可以创建 JPA 实体了

  创建 JPA 实体和 beans

  Rational Application Developer V7.5 JPA 工具使您能够快速地创建 JPA 实体JPA 实体是个数据库 Java 类代表并使您能够和数据库没有链接模型相交流 个 JPA 实体中注释可以显示出表格其他表格的间关系主关键字以及等等

  Rational Application Developer 提供工具还能生成 JPA Manager beans这是在 Rational Application Developer V7.5 中引入概念它向您提供了查询数据库简化通用访问权并组成了 EJB 和 Web 模型中 JPA 数据如果您想要得到有关 Rational Application Developer JPA 工具更多细节信息以及特定指导思路方法您可以在帮助文件中找到这些

  按照以下步骤创建 JPA 实体:

  右键点击您 Web 项目(MyWebProject)并选择 JPA Tools>Add JPA Manager Beans

  点击 Create New JPA Entities 按钮以启动 Generate Entities 向导

  选择 Derby Sample Connection 和 SAMP 项目如图 6 所示

  图 6. 选择数据库链接以创建 JPA 实体

使用 IBM Rational Application Developer V7.5 中<img src='/icons/806de.gif' /> JPA, Ajax 和 Dojo 工具开发 Web 2.0 应用<img src='/icons/806chengxu.gif' />

  点击 Next

  在 Generate Entities from Database 页面上选择 EMPLOYEE 表格并选择 Synchronize Classes 复选框如图 7 所示

  图 7. 选择表格以生成 JPA 实体

使用 IBM Rational Application Developer V7.5 中<img src='/icons/806de.gif' /> JPA, Ajax 和 Dojo 工具开发 Web 2.0 应用<img src='/icons/806chengxu.gif' />

  点击 FinishJPA 实体会被创建并重新回到 Add JPA Manager Bean 向导Employee 实体将出现在可得到实体列表中

  JPA Manager Bean 向导向您提供工具使您能够访问个数据库并有效管理它实体通过使用自动生成查询或者使用包含查询构建器生成查询可以查询数据库Manager Bean 向导会显示出个数据库中包含关键字和关系并允许您去定义它们改变 JPA Manager Bean 向导中选项将能够编辑 Employee 实体或者 EmployeeManager bean 中代码

  在 JPA Manager Bean 向导中检查 Employee 实体如图 8 所示

  图 8. JPA Manager bean Wizard 中可见 Employee 实体

使用 IBM Rational Application Developer V7.5 中<img src='/icons/806de.gif' /> JPA, Ajax 和 Dojo 工具开发 Web 2.0 应用<img src='/icons/806chengxu.gif' />

  选择 Employee 实体复选框并点击 NextJPA Manager Bean 向导会显示出如图 9 所示

  如果出现条出错信息声称没有定义个主关键字那么您可以选择 empno 作为主关键字这将向 employee 实体添加条 @Id 注释并解决这个

  图 9. JPA Manager Bean 向导

使用 IBM Rational Application Developer V7.5 中<img src='/icons/806de.gif' /> JPA, Ajax 和 Dojo 工具开发 Web 2.0 应用<img src='/icons/806chengxu.gif' />

  编辑 getEmployee 查询以返回 employee 列表

  转到 Query Methods 页面

  选择 getEmployee 查询并点击 Edit

  在 Result Attributes 项上清除掉和经济消息有关属性以在查询结果中隐藏掉这条隐私消息(换句话说就是清除掉 bonuscomm和 salary 属性如图 10 所示)

  图 10. 为条已命名查询编辑属性

使用 IBM Rational Application Developer V7.5 中<img src='/icons/806de.gif' /> JPA, Ajax 和 Dojo 工具开发 Web 2.0 应用<img src='/icons/806chengxu.gif' />

  列表 1. 使用数据源或者资源参考

  <jta-data-source>java:comp/env/Derby Sample Connection</jta-data-source>

  选择第 2个选项个属性将会添加至 persistence.xml如列表 2 所示

  列表 2. 通过属性直接设置链接

<properties>
  <property name="openjpa.jdbc.Schema" value="SAMP"/>
  <property name="openjpa.ConnectionDriverName"
value="org.apache.derby.jdbc.EmbeddedDriver"/>
  <property name="openjpa.ConnectionURL" value="jdbc:derby:D:DevWorksArticle
.metadata.pluginscom.ibm.datatools.db2.cloudscape.driverSAMPLE;create=true"/>
  <property name="openjpa.ConnectionUserName" value=""/>
  <property name="openjpa.ConnectionPassword" value=""/>
  </properties>


  现在 JPA 实体和管理 bean 已经被创建出来注意该实体创建于 src/entities 目录的下而管理 bean 创建于 src/entities/controller 目录下如图 13 所示

  图 13. Enterprise Explorer 中 JPA 实体和管理 bean 类

使用 IBM Rational Application Developer V7.5 中<img src='/icons/806de.gif' /> JPA, Ajax 和 Dojo 工具开发 Web 2.0 应用<img src='/icons/806chengxu.gif' />

  Employee 实体类包含了表格和它包含EmployeeManager JPA Manager bean 包含了 getEmployee 思路方法该思路方法创建于 JPA Manager bean’s Query 构建器中接下来思路方法 getEmployee 将作为带 RPC Adapter JSON-RPC Web 服务而公布而 JSON 结果将在 Web 页面中使用

  注意:Rational Application Developer V7.5 同样包含了新 Web 工具使组成 JavaServer Faces Web 页面 JPA Data 更加容易

  将 JPA Manager bean 思路方法作为个 RPC Adapter Web 服务公布

  RPC Adapter 是个 WebSphere 工具(包含在 Web 2.0 特性包 中)该工具将服务边代码作为 Web 服务来公布这些服务可以通过个 http 地址访问并以 XML 或者 JSON 方式返回个结果Rational Application Developer 提供工具能快速在个 Java 类中公布个思路方法并作为项 Web 服务而公布JPA Manager bean 中 getEmployee 思路方法将在本例中通过 RPC Adapter 公布

  在使用 Rational Application Developer V7.5 中 RPC Adapter 功能的前向 Web Project 添加 Web 2.0 Server-side 技术项

  右键点击 Web ProjectMyWebProjct并选择 Properties

  转到 Project Facets 页面

  选择 Web 2.0 > Server-side technologies如图 14 所示并点击 OK

  图 14. 添加 Server-side 技术项

使用 IBM Rational Application Developer V7.5 中<img src='/icons/806de.gif' /> JPA, Ajax 和 Dojo 工具开发 Web 2.0 应用<img src='/icons/806chengxu.gif' />

  接下来创建 RPC Adapter 服务:

  在 Enterprise Explorer 视图中点击 Web Project (MyWebProject)并选择 Services>Expose RPC Adapter Service随后会出现 Expose RPC Adapter Service 对话框

  Web 项目将预填充于 Web Project 下拉项中

  点击 Class 区域旁边 Browse按钮

  在 Select a Java Class to Expose 对话框中输入 JPA Manager bean 类名字:EmployeeManagerEmployeeManager 将会在匹配项列表中显示出来选中它并点击 OK

  注意来自 JPA Manager bean 思路方法列表将出现在对话框中

  选择 getEmployee 思路方法如图 15 所示

  图 15. 选择 JPA Manager bean 思路方法以作为个 RPC Adapter Service 而公布

使用 IBM Rational Application Developer V7.5 中<img src='/icons/806de.gif' /> JPA, Ajax 和 Dojo 工具开发 Web 2.0 应用<img src='/icons/806chengxu.gif' />

  点击 Next

  Expose RPC Adapter Service 向导 Configure Methods 页面就是配置服务地方如图 16 所示接受这个页面中其他默认设置

  图 16. RPC Adapter Configure Methods 页面

使用 IBM Rational Application Developer V7.5 中<img src='/icons/806de.gif' /> JPA, Ajax 和 Dojo 工具开发 Web 2.0 应用<img src='/icons/806chengxu.gif' />

  点击 Finish

  RPC Adapter Service 将会被创建服务将出现在 Services 节点 Enterprise Explorer 视图中服务配置包含在个新创建文件中 :WebContent/WEB-INF/RPCAdapterConfig.xml打开这个文件将会载入 RPC Adapter Configuration 编辑器在这里 RPC 配置可以在图形化编辑器中编辑

  当您创建 JPA Manager bean 查询时带有 java.sql.Date 种类区域将仍然被选中种类 java.sql.Date 需要由 RPC Adapter 通过转化器特别处理在 Date 区域向 RPC Adapter 添加个转化器:

  打开 RPCAdapterConfig.xml 文件

  在 RPC Adapter 概述中选择 Converters

  点击 Add 按钮

  在 Add Item 对话框中选择 Converter并按下 OK

  如果想得到转化器细节您可以输入以下内容如图 17 所示:   Bean:java.sql.Date

  Converter:com.ibm.websphere.rpcadapter.converters.sql.Date

  图 17. RPC Adapter Configuration Editor

使用 IBM Rational Application Developer V7.5 中<img src='/icons/806de.gif' /> JPA, Ajax 和 Dojo 工具开发 Web 2.0 应用<img src='/icons/806chengxu.gif' />

  在 WebSphere Application Server V7.0 上测试 RPC Adapter

  为了简单测试 Web 服务在 Services/Employee Manager 的下 Enterprise Explorer 视图中右键点击 getEmployee 思路方法

  选择 Run As>Run _disibledevent=>

  以下 URL 将在个 Web 浏览器中打开:

  http://localhost:9080/MyWebProject/RPCAdapter/httprpc/EmployeeManager/getEmployee

  该 Web 浏览器将会启动并下载结果

  在个文本编辑器中打开结果文件例如在 NotePad 中打开该文件来自 RPC adapter 服务 JSON 结果开始部分如列表 3 所示代码那样

  列表 3. 来自 RPC adapter 服务部分 JSON 结果

{"result":[{"lastname":"ADAMSON","hiredate":"1972-02-12T00:00:00-0500",
"edlevel":16,"workdept":"D11","sex":"M","firstnme":"BRUCE","midinit":"",
"empno":"000150","job":"DESIGNER","birthdate":"1947-05-17T00:00:00-0400",
"phoneno":"4510"}      


Tags:  ajax教程 jqueryajax asp.netajax ajax获取数据异常

延伸阅读

最新评论

发表评论