使用REST Web Services来管理JPA实体。在逆向工程数据库表后生成REST Web服务,下面的示例创建用于管理博客条目的简单Web服务。你将学会:
- 利用数据库逆向工程开发REST Web服务
- 部署到Tomcat服务器
- 使用REST Web服务资源管理器进行测试
没有MyEclipse? 立即下载
1.建立项目和数据库连接
要在MyEclipse中开始REST和反向工程,您将需要以下内容:
- 添加了JPA Facets的项目
- 使用DB Explorer选择要使用JPA进行逆向工程的表
在MyEclipse中,您可以将JPA Facets添加到许多不同类型的项目中。JPA Facets通常被添加到Java项目或Web项目中。
1.1设置Web项目
- 单击New图标上的下拉箭头,然后选择Web Project。
- 在Project Name字段中输入RESTProject,接受默认选项,然后单击Finish。
创建Web项目
现在已经创建了项目,下一步是创建一个DB Connection来与该项目一起使用。在添加JPAFacet时,需要选择连接。
1.2建立DB连接
MyEclipse提供了一个预配置的DB连接,指向Apache Derby DBMS的嵌入式安装。您可以立即使用这个连接,而不需要设置自己的DBMS或连接。
- 单击OpenPers.图标,并从菜单中选择Database Explorer。
- 在DB Browser视图中,选择MyEclipse Derby连接,然后单击Open Connection图标。这将启动嵌入式MyEclipse Derby服务器,并使您能够立即访问数据库中的表。
打开数据库连接
MyEclipse Derby包括几个示例模式。您将使用的表是MYBLOG表,其中包含一个用于处理博客帖子的表。
Post table
1.3将JPA Facets添加到项目中
打开DB连接后,您可以将JPA方面添加到项目中,以便它可以从DB连接访问表和信息。
- 切换回Java企业透视图,右键单击项目,并选择“配置方面”>安装JPA方面。
- 选择2.1作为JPA规范版本,以及MyEclipse泛型Java运行时在目标运行时下拉,然后单击Next。
配置JPA方面
- 使用EclipseLink 2.5.x作为平台,使用MyEclipse Library作为JPA实现类型。在Connection字段中选择MyEclipse Derby,选择Add driver库来构建路径并从连接复选框中重写默认模式,并从Schema下拉菜单中选择MYBLOG。单击“完成”。
完成JPA方面配置
现在项目已经添加了完全配置的JPA方面,其中包括JPA配置信息、DB连接信息,以及添加到项目的构建路径中的所有必要的JDBC和JPA库。所有构建路径添加都准备好部署到应用服务器。
项目结构
2.Reverse-Engineer the POST表
现在已经设置了项目,您已经准备好将POST表逆向工程到项目中并开始使用生成的实体。
- 右键单击项目,然后选择JPA工具>GenerateEn.es&DAO。
注意:您可以选择使用MyEclipse逆向工程工具或DALI实体生成器。做出选择,单击OK,然后完成向导。本教程使用MyEclipse逆向工程工具。
逆向工程工具选择
- 选择POST表,单击Add,然后单击Next。
指定要进行逆向工程的POST表
- 在Java包字段中,键入COM.MycliestId.jPa。选择以下复选框:
Entity Bean Generation: 告诉MyEclipse生成被注释为JPA实体的普通Java类
Update persistence.xml:类似于Hibernate;您可以列出在JPA配置文件中使用的所有JPA实体。
Java Data Access Generation:告诉MyEclipse为您生成DAO实用程序类,允许您立即从数据库中保存/查找/更新/删除实体。这段代码包装了JPA实体管理器,并使得使用实体和DB非常容易。
Generate Precise findBy Methods:告诉MyEclipse生成findByXXX方法,其中XXX与被反转的实体上的每个属性有关。这允许使用任何属性作为查找实体的手段,轻松访问DB中的实体。
Generate Java Interfaces:选择此选项创建一个具有相应的DAO实现类的接口类。取消选择此选项只生成DAO实现类,而不用定义接口的单独类。
建立逆向工程
- 单击Finish。您可以查看通过展开Explorer视图中的com.myeclipseide.jpa包生成的资源MyEclipse。
生成的类
所生成的实体描述如下:
- EntityManagerHelper:当使用直接JPA时,开发人员需要使用EntityManager类。这个生成的助手类通过提供静态方法访问管理器,以及最容易调用的常见操作,使得使用EntityManager的过程更加容易。
- IPostDAO:定义相应DAO实现类的接口的类。
- post:这个类是表示DB表POST的JPA实体(POJO)。这个POJO包含POST表的字段,并且表示DB中的一行。
- PostDAO:这个类包装了EntityManagerHelper以提供易于使用的方法,特别是用于从DB中添加/查找/更新和删除产品的方法。
注意:在反向工程完成之后,您可以打开Persistence透视图,使用一些持久性和数据源工具来分析DB和项目中的数据。
3.使用REST Web服务访问数据
可以通过RESTWeb服务公开从数据库表生成的JPA实体。为此,您必须首先将JAX-RS方面安装到项目中。当您通过REST服务公开实体时,会生成REST外观。这些外观提供了通过REST公开的用于管理数据库的方法。
- 右键单击项目,然后选择Configure Facets>Install JAX-RS(REST Web Services)Facet。
- 接受默认JAX-RS 2.1版本和默认目标运行时,然后单击Next。
选择JAX-RS版本和目标运行时
- 接受默认facet配置,然后单击Finish。
完成JAX-RS配置
- 右键单击资源管理器中的com.myeclipseide.jpa包,并选择Web服务工具>通过REST Web服务公开。
- 包和EntityManagerHelper类是默认的。如果对多个实体进行了逆向工程,则可以选择要公开的实体。在这种情况下,您只有一个。单击Finish生成REST外观。
Generating REST facades
如果打开PraseDeSerest.java文件,您可以看到可用的方法,如创建、编辑、删除和查找。
可用的REST外观方法
4.部署Web服务应用程序
部署Web服务的最快的方法是使用Run As或Debug As MyEclipse Server Application操作部署项目。
- 右键单击项目,并选择Run As>MyEclipse Server Application。
- 选择MyEclipse Tomcat,然后单击Finish。
MyEclipse执行以下步骤:
- 将项目打包并以爆炸模式将其部署到应用程序服务器
- 启动应用服务器并加载项目
5.使用REST Web服务资源管理器进行测试
REST Web服务资源管理器在MyEclipse标准订阅级别不可用。如果您是MyEclipse标准订户,请按照使用标准浏览器测试Web服务的说明操作。
- 右键单击项目,并选择Web服务工具>Test with REST Web Services Explorer。
注意:如果部署到MyEclipse Tomcat以外的应用服务器,则资源管理器中使用的WADL URL可能包含不正确的端口,从而阻止资源管理器加载WADL文件。更正端口,然后单击Go按钮继续。
还可以通过单击工具栏上的Web Services Explorer图标上的下拉箭头,并选择Launch REST Web Services Explorer,打开REST Web Services Explorer。在这种情况下,在继续之前,必须在地址栏中输入WADL文件的路径。
- 将树展开到count节点,并选择countREST方法。
选择要测试的方法
- 单击测试方法。将打开一个新选项卡,您可以在其中输入信息并运行测试。
用于测试方法的countREST选项卡
- 单击运行测试图标。在Raw响应区域中,观察计数为0,因为没有创建帖子。
- 关闭countREST选项卡。
- 在Post节点中选择create方法,然后单击Test method。
- 从create选项卡上的Representation下拉列表中选择application/xml。
- 在Body中,键入application/xml区域,粘贴以下代码,然后单击。实体创建成功。
<post>
<title>My First Post</title>
<content>Welcome to my new blog</content>
</post>
博客条目测试响应
- 关闭create选项卡。
- 选择countREST方法,并单击Test method。
- 点击。计数现在显示您刚刚发布的条目的1。
- 在Post节点中,选择findAll方法,然后单击Test method。
- 点击。您可以在原始视图中看到您的帖子条目。