- Day 1: Bower - 管理你的客户端依赖关系
- Day 2: AngularJS - 对 AngularJS 的初步认识
- Day 3: Flask - 使用 Python 和 OpenShift 进行即时 Web 开发
- Day 4:PredictionIO - 如何创建一个博客推荐器
- Day 5: GruntJS - 重复乏味的工作总会有人做(反正我不做)
- Day 6:在 Java 虚拟机上使用 Grails 进行快速 Web 开发
- Day 7: GruntJS 在线重载 提升生产率至新境界
- Day 8: Harp.JS - 现代静态 web 服务器
- Day 9: TextBlob - 对文本进行情感分析
- Day 10: PhoneGap - 开发手机应用如此简单
- Day 11: AeroGear 推送服务器:使应用的通知推送变得简单
- Day 12: OpenCV - Java 开发者的人脸检测
- Day 13: Dropwizard - 非常棒的 Java REST 服务器栈
- Day14:使用斯坦福 NER 软件包实现你自己的命名实体识别器(Named Entity Recognition,NER)
- Day 15:Meteor - 从零开始创建一个 Web 应用
- Day 16: Goose Extractor - 好用的文章提取工具
- Day 17: 使用 JBoss Forge 和 OpenShift 构建部署 JAVA EE 6 应用
- Day 18: BoilerPipe - Java 开发者的文章提取工具
- Day 19: EmberJS 入门指南
- Day 20: 斯坦福 CoreNLP - 用 Java 给 Twitter 进行情感分析
- Day 21:Docker 入门教程
- Day 22: 使用 Spring、MongoDB 和 AngularJS 开发单页面应用
- Day 23:使用 TimelineJS 构建精美的时间轴
- Day 24: 使用 Yeoman 自动构建 Ember 项目
- Day 25: 联合 Tornado、MongoDB 和 AngularJS 进行应用开发
- Day 26: TogetherJS - 让我们一起来编程!
- Day 27: Restify - 在 Node.js 中构建正确的 REST Web 服务
- Day 28: OpenShift 的 Eclipse 集成
- Day 29:编写你的第一个 Google Chrome 扩展程序
- Day 30: Play Framework - Java 开发者的梦想框架
Day 17: 使用 JBoss Forge 和 OpenShift 构建部署 JAVA EE 6 应用
今天的 “30 天学习 30 种新技术” 挑战,我决定学习一下 JBoss Forge 。JBoss Forge 是一个创建基于 Maven 的 Java 应用的开发工具,它可以帮助 Java 开发者快速地开发 web 应用。本文中,我们将使用 JBoss Forge 开发一个简单的待办应用,可以为基于 Angularjs 的前端提供服务。这一切都可以使用 JBoss Forge 完成。让我们开始吧。
预备
- 注册一个 OpenShift 账号 。注册是完全免费的,Red Hat 给每个用户三枚免费的 Gear,可以用 Gear 运行你的应用。在写作此文的时候,每个用户能免费使用总共 1.5 GB 内存和 3 GB 硬盘空间。
- 基本 Java 知识。
- 基本的 Git 知识。
- 在你的系统上安装最新版的 JDK。你可以安装 OpenJDK 7 和 Oracle JDK 7 。OpenShift 支持 OpenJDK6 和 7。
- 从 官网 下载最新的 Eclipse 包。 在撰写本文的时候,最新的 Eclipse 包叫作 Kepler。
安装 eclipse 很容易,解压缩即可。
tar -xzvf eclipse-jee-kepler-R-*.tar.gz
第一步 安装 OpenShfit 和 JBoss Forge 的 Eclipse 插件
打开 Eclipse,进入你的项目工作空间。打开 Help > Eclipse Marketplace,你会看到如下屏幕。
在搜索框中搜寻“jboss tools”。第一个结果就是“JBoss Tools(Kepler)”。
点击“安装”,会出现选择安装插件的列表。由于本文的目的是演示,我们只选上 JBoss OpenShift Tools。选中之后点击“确认”。
现在我们需要接受许可协议。选择接受后点击完成。
Eclipse 会警告该插件未签名。点击“确认”然后 Eclipse 会要求重启,点击“是”,重启一下。
第二步 使用 JBoss Forge 1.4.1
JBoss Forge 使用 JBoss Forge 1.3.1,然而本文中将使用 1.4.1, 因为 JBoss Forge Angularjs 插件在 1.3.1 下不工作。所以要从 http://forge.jboss.org/ 下载 JBoss Forge。下载之后解压缩,然后进入 Eclipse 的设置界面。
在设置界面,进入 Forge > Installed Forge Runtimes,添加一个新的运行时环境。
现在点击“添加”按钮。填写详情后点击“确认”。
将其设为默认安装:
第四步 开启 JBoss Forge
通过 Window > Show View > Other > Forge > Forge Console 开启 Forge 控制台。
双击“Forge Console”会新开一个标签页。
点击绿色按钮启动 forge。
第五步 创建 Maven 项目
启动 Forge 1.4.1 之后, 在 forge 控制台输入如下命令创建 Forge Maven 项目。
[no project] forge $ new-project --named todoapp --topLevelPackage com.todoapp --finalName todoapp
以上命令告诉 forge 创建一个名为 todoapp 的项目,使用 com.todoapp
包。
输入上述命令后,forge 会询问你项目的目录,按回车选择默认选项。
你可以告诉 Forge 为每个命令自动使用默认选项,只需设置 ACCEPT_DEFAULTS
。在 Forge shell 中输入如下命令:
set ACCEPT_DEFAULTS true;
第六步 添加 JPA
添加 JPA 很方便。只需在 Forge shell 中输入如下命令:
[todoapp] todoapp $ persistence setup --provider HIBERNATE --container JBOSS_AS7
这会创建 persistence.xml
并绑定到 java:jboss/datasources/ExampleDS
。
第七步 创建 Todo 实体
现在创建一个 Todo 的 JPA 实体,然后添加以下四个字段:
[todoapp] todoapp $ entity --named Todo
[todoapp] Todo.java $ field string --named task
[todoapp] Todo.java $ field string --named description
[todoapp] Todo.java $ field temporal --type DATE --named createdOn
[todoapp] Todo.java $ field boolean --named completed
你可以使用 ls
命令查看任何 Java 类的内容。
[todoapp] Todo.java $ ls
[fields]
private::Date::createdOn; private::Long::id;
private::String::description; private::String::task;
private::boolean::completed; private::int::version;
[methods]
public::equals(Object that)::boolean
public::getCompleted()::boolean
public::getCreatedOn()::Date
public::getDescription()::String
public::getId()::Long
public::getTask()::String
public::getVersion()::int
public::hashCode()::int
public::setCompleted(final boolean completed)::void
public::setCreatedOn(final Date createdOn)::void
public::setDescription(final String description)::void
public::setId(final Long id)::void
public::setTask(final String task)::void
public::setVersion(final int version)::void
public::toString()::String
第八步 RESTful web 服务
现在我们要使用 JBOSS Forge 为 Todo 实体生成 REST。因此我们需要设置 JBoss Forge REST 插件。
[todoapp] Todo.java $ rest setup --activatorType APP_CLASS
***SUCCESS*** Installed [forge.maven.WebResourceFacet] successfully.
***SUCCESS*** Installed [forge.spec.servlet] successfully.
***SUCCESS*** Installed [forge.spec.jaxrs.applicationclass] successfully.
***SUCCESS*** Installed [forge.spec.jaxrs] successfully.
***SUCCESS*** Rest Web Services (JAX-RS) is installed.
Wrote /Users/shekhargulati/dev/workspaces/forge/todoapp/src/main/webapp
Wrote /Users/shekhargulati/dev/workspaces/forge/todoapp/pom.xml
Wrote /Users/shekhargulati/dev/workspaces/forge/todoapp/src/main/java/com/todoapp/rest/RestApplication.java
[todoapp] Todo.java $
上述命令中,我们使用应用类激活 JAX-RS,这样就不用在 web.xml
中定义。我们创建了一个扩展了 javax.ws.rs.ApplicationPath
的 RestApplication 类。
现在我们可以用 Forge 来生成 REST 了。
[todoapp] todoapp $ rest endpoint-from-entity --contentType application/json com.todoapp.model.Todo.java
上述命令将为我们的 Todo JPA 实体创建一个标准的 RESTful web 服务。
第九步 Angular JS 前端
Forge 默认支持 JSF。但是你也可以选择其他技术,例如 Angularjs。为了使用 Angularjs,我们需要安装相应插件。
在 Forge 控制台输入如下命令安装 Forge Angularjs 插件。
[todoapp] todoapp $ forge install-plugin angularjs
安装之后配置一下。
[todoapp] todoapp $ scaffold-x setup --scaffoldType angularjs
这会在我们的待办应用中设置 Angularjs。现在我们可以为 Todo 实体生成视图了。
[todoapp] model $ scaffold-x from Todo.java
第十步 部署到 OpenShift
万事具备,只欠部署。 OpenShift 的 JBoss 工具使从 Eclipse 部署 Java 应用非常方便。
在 eclipse 中点击 File > New > Other > OpenShift Application,在下图所示页面中点击“下一步”:
需要填写 OpenShift 账号信息,如果你还没有注册,你可以点击“现在注册”,会有一个向导界面引导你注册。
接下来要创建一个 OpenShift 域名。每一个账号有且仅有一个独特的域名。域名构成了 OpenShift 分配给应用的 URL 的一部分。例如,如果你的应用的名字是“awesomeapp”,你的域名是“onopenshiftcloud”,那么应用的 URL 就是 http://awesomeapp-onopenshiftcloud.rhcloud.com 。
创建域名之后,会出现一个创建应用的引导界面。你需要填写相应的信息。我们将创建一个名为 todoapp 的应用,该应用使用 jbosseap-6 。
然后会要求我们设置应用,配置适配服务器。保留默认选项,点击“下一步”即可。
接着会询问关于 git 仓库的一些信息。保留默认选项即可。
最后,点击“完成”按钮。这将为我们创建一个应用容器(gear),自动配置 SELinux 和 cgroup。OpenShift 同时将创建一个私有的 git 仓库并克隆到本地。然后会配置 DNS。最后,这个项目将被倒入你的 esclipse 工作空间。
OpenShift Clipse 会合并改动,并询问是否将应用代码推送到 OpenShift。
你可以通过访问 http://todoapp- {domain-name}.rhcloud.com 查看应用。将 {domain-name}
替换为你的 OpenShift 账户域名。
结语
本文介绍了如何使用 JBoss Forge 和 OpenShift Eclipse 集成来创建一个 Java EE 应用。OpenShift Eclipse 插件很好用。所以说,如果你是个寻找部署环境的 Java (EE) 开发者,那么你可以尝试下 OpenShift。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论