文档章节

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

六Ge
 六Ge
发布于 2015/04/21 16:21
字数 602
阅读 195
收藏 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
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
iphone开发技术要学习的内容

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

和谐中原植物酒
2015/08/24
138
2
QT平台的手持媒体播放器项目如何去做?

一、本课程是怎么样的一门课程 1.1、课程的背景 Qt是一个1991年由奇趣科技开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程式,也可用于开发非GUI程式,比如控制台工具和服务...

我是小北
2013/12/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

49.Nginx防盗链 访问控制 解析php相关 代理服务器

12.13 Nginx防盗链 12.14 Nginx访问控制 12.15 Nginx解析php相关配置(502的问题) 12.16 Nginx代理 扩展 502问题汇总 http://ask.apelearn.com/question/9109 location优先级 http://blog....

王鑫linux
今天
1
0
Nginx防盗链、访问控制、解析php相关配置、Nginx代理

一、Nginx防盗链 1. 编辑虚拟主机配置文件 vim /usr/local/nginx/conf/vhost/test.com.conf 2. 在配置文件中添加如下的内容 { expires 7d; valid_referers none blocked server_names *.tes......

芬野de博客
今天
0
0
spring EL 和资源调用

资源调用 import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.PropertySource;import org.springframework.core.io.Resource;......

Canaan_
今天
1
0
memcached命令行、memcached数据导出和导入

一、memcached命令行 yum装telnet yum install telent 进入memcached telnet 127.0.0.1 11211 命令最后的2表示,两位字节,30表示过期时间(秒) 查看key1 get key1 删除:ctrl+删除键 二、m...

Zhouliang6
今天
1
0
Linux定时备份MySQL数据库

做项目有时候要备份数据库,手动备份太麻烦,所以找了一下定时备份数据库的方法 Linux里有一个 crontab 命令被用来提交和管理用户的需要周期性执行的任务,就像Windows里的定时任务一样,用这...

月夜中徘徊
今天
1
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部