文档章节

REST+EJB+JPA 框架在 Eclipse+TomEE 的开发环境搭建

六Ge
 六Ge
发布于 2015/04/21 16:21
字数 602
阅读 201
收藏 0

Apache TomEE结合了众多开源Java EE的实现,诸如GlassFish、JBoss和Apache Geronimo,同时也是仅有的6个通过认证的JavaEE引擎之一。

一、准备工作

  1. 下载TomEE,http://mirrors.hust.edu.cn/apache/tomee/tomee-1.7.1/apache-tomee-1.7.1-plume.zip,该版本内核为Tomcat 7,解压即可。

  2. 下载Eclipse for JavaEE,必须是Kepler或以上版本,否则不支持Tomcat 7

  3. jdk1.7或以上版本 + Maven 3.x

二、环境搭建步骤及关键代码

1、Eclipse+TomEE

1) 启动Eclipse,菜单Window-Preference-Server-Runtime Environment-Add,增加TomEE(与增加tomcat方法相同);

2) Window-Show View-Servers,增加Server,选择上一步的TomEE;

3) 双击上一步中的Server,勾选如下内容并保存:

增加后需要手动将 tomee.xml和system.properties导入(import - File System)到localhost-config文件夹下。

4) 创建TomEE数据源:在Servers项目中的“TomEE localhost-config”修改tomee.xml,增加如下内容:

 <Resource id="myJtaOracleJNDI" type="DataSource">
  JdbcDriver oracle.jdbc.OracleDriver
  JdbcUrl jdbc:oracle:thin:@localhost:1521:orcl
  UserName Scott
  Password tiger
  JtaManaged true
 </Resource>

数据源创建后,注意要将对应的驱动jar放到tomee的lib中

5) 设置jsp修改后热部署:在Servers项目中的“TomEE localhost-config”修改web.xml,找到jsp的Servlet配置,修改development参数为true。

 

2、创建Maven Web项目

3、增加Rest支持(Jersey)

1) pom.xml增加以下依赖:

  <dependency>
   <groupId>org.glassfish.jersey.media</groupId>
   <artifactId>jersey-media-json-jackson</artifactId>
   <version>2.17</version>
  </dependency>
  <dependency>
   <groupId>org.glassfish.jersey.containers</groupId>
   <artifactId>jersey-container-servlet</artifactId>
   <version>2.17</version>
  </dependency>

2) 创建ApplicationConfig:

@ApplicationPath("rest")
public class ApplicationConfig extends ResourceConfig {
 public ApplicationConfig() {
  packages("com.company.resources");
 }
}

3) 配置项目的web.xml,增加Servlet如下:

<servlet>
 <servlet-name>Jersey REST Service</servlet-name>
 <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
 <init-param>
  <param-name>javax.ws.rs.Application</param-name>
   <param-value>com.company.ApplicationConfig</param-value>
 </init-param>
</servlet>

 4、增加JPA支持(EclipseLink)

 1) pom.xml增加以下依赖:

<dependency>
   <groupId>org.eclipse.persistence</groupId>
   <artifactId>javax.persistence</artifactId>
   <version>2.1.0</version>
  </dependency>
  <dependency>
   <groupId>org.eclipse.persistence</groupId>
   <artifactId>eclipselink</artifactId>
   <version>2.6.0</version>
  </dependency>

2) src\main\resources\META-INF\persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
 <persistence-unit name="my-app" transaction-type="JTA">
  <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
  <exclude-unlisted-classes>true</exclude-unlisted-classes>
  <jta-data-source>myJtaJNDI</jta-data-source>
  <class>com.company.Student</class>
 </persistence-unit>
</persistence>

5、发布项目

发布后,修改Servers项目中的“TomEE localhost-config”的server.xml,将其中最后的<Context>标签的reloadable设置为false。否则一旦修改后台,服务器会自动重启。

至此,环境搭建完成。TomEE启动的时候使用Debug模式(否则修改后台后不生效)。

 

Enjoy!

转载请注明出处O(∩_∩)O~

© 著作权归作者所有

共有 人打赏支持
六Ge
粉丝 2
博文 3
码字总数 1319
作品 0
烟台
[Android开发实践]搭建本地API服务器与HTTP请求调用

目的 在Android开发下,可以实现app对特定API服务器进行接口请求。 场景 现在很多项目都是基于C/S架构,所以在个人开发过程需要搭建类似的开发测试环境。列举一下本次的环境: 开发环境:Win...

暗夜在火星
2014/06/28
0
0
iphone开发技术要学习的内容

一.iOS基础   1 开发环境搭建以及IOS组件、框架的概要介绍。   2 mac操作系统与iOS操作系统   3 xcode IDE开发环境的初始   二.C语言基础   1数据类型、表达式与控制流程语句   ...

和谐中原植物酒
2015/08/24
138
2
GEF(Graphical Editor Framework) Eclipse项目入门系列(2)---Draw2D开发环境的搭建

GEF(Graphical Editor Framework) Eclipse项目入门系列(1)---概述中,我们已经提到了Draw2D框架是GEF框架的重要组成部分。那么Draw2D的环境如何搭建起来呢?其实很简单,去Eclipse的官方网...

chancein007
2014/12/24
0
0
以太坊私有链DApp开发环境搭建(一)

一、安装前的准备 1.1 查看当前CPU架构 在终端中执行以下命令,确定是32位架构还是64位架构: 如果你看到输出x86_64,那么就是64位系统,否则是32位。 1.2下载工具 确保你安装了下载工具wge...

马拉喀什
04/08
0
0
一个简单的移动web开发

还没有入门,我想用html5、javascrip、jQuery Mobile搭建一个b/s框架的应用,主要应用时读取服务器上的一些数据来显示,还需要JAVA么?用什么来连接数据库,怎么搭建开发环境哦?真的非常感谢...

gezhou
2012/08/30
536
6

没有更多内容

加载失败,请刷新页面

加载更多

Java日期和时间获取问题

获取年月日时分秒 Calendar cal = Calendar.getInstance();//获取年int year = cal.get(Calendar.YEAR);//获取月,范围是0-11,最后使用需+1int month = cal.get(Cal...

lanyu96
24分钟前
7
0
Ceph学习笔记2-在Kolla-Ansible中使用Ceph后端存储

环境说明 使用Kolla-Ansible请参考《使用Kolla-Ansible在CentOS 7单节点上部署OpenStack Pike》; 部署Ceph服务请参考《Ceph学习笔记1-Mimic版本多节点部署》。 配置Ceph 以osdev用户登录: ...

LastRitter
28分钟前
6
0
OSChina 周二乱弹 —— 老司机表示右手无处安放

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @花间小酌 :分享李宗盛的单曲《鬼迷心窍》--春风再美也比不上你的笑 《鬼迷心窍》 - 李宗盛 手机党少年们想听歌,请使劲儿戳(这里) 每天早...

小小编辑
40分钟前
225
5
复习2

10月22日任务 awk 中使用外部shell变量 awk 合并一个文件 把一个文件多行连接成一行 awk中gsub函数的使用 awk 截取指定多个域为一行 过滤两个或多个关键词 用awk生成以下结构文件 awk用print...

hhpuppy
48分钟前
5
0
原型模式

1、原型模式-定义 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象 克隆(浅度克隆->拷贝值类型或者引用,深度克隆->创建新的对象,开辟新的内存) 例如客户端知道抽象Pro...

阿元
今天
62
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部