摘要:會警告該插件未簽名。以上命令告訴創建一個名為的項目,使用包。的工具使從部署應用非常方便。域名構成了分配給應用的的一部分。這將為我們創建一個應用容器,自動配置和。同時將創建一個私有的倉庫并克隆到本地。
編者注:我們發現了有趣的系列文章《30天學習30種新技術》,正在翻譯,一天一篇更新,年終禮包。下面是第 17 天的內容。
今天的“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.1JBoss 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。
原文 Day 17: JBoss Forge——Build and Deploy Java EE 6 AngularJS Applications using JBoss Forge and OpenShift
翻譯 SegmentFault
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/64015.html
摘要:今天的天學習種新技術我決定介紹的集成。會警告該插件未簽名。同時將創建一個私有的倉庫并克隆到本地。熱部署僅僅替換文件而不會停止服務。如果將其禁用,那么應用將使用。轉到視圖發布改動。刪除模板文件以上版本下,為可選。 編者注:我們發現了有趣的系列文章《30天學習30種新技術》,正在翻譯,一天一篇更新,年終禮包。下面是第 28 天的內容。 今天的《30天學習30種新技術》 我決定介紹Op...
摘要:今天我決定學習如何使用做網頁鏈接的文本和圖像提取。準備基本的知識是必需的,安裝最新的開發工具包,可以是或。第步啟用使用來進行依賴注入。上下文和依賴注入是一個規范,能夠使依賴注入在的項目中。在文件夾下建一個名為中一個新的文件。 編者注:我們發現了有趣的系列文章《30天學習30種新技術》,正在翻譯,一天一篇更新,年終禮包。下面是第 18 天的內容。 今天我決定學習如何使用Java做網...
摘要:現在可以通過點擊指標檢查的指標,該數據是可用的格式。健康檢查被添加。現在啟動,可以看到第步創建現在寫類,它負責創建博客條目。為了測試,做一個請求第步更新現在,更新方法來從獲取所有的博客文件。 編者注:我們發現了比較有趣的系列文章《30天學習30種新技術》,準備翻譯,一天一篇更新,年終禮包。下面是第十三天的內容。 我已經是一個使用了8年Java的軟件開發人員了,我寫過的大多數應用程...
摘要:要安裝,輸入更新到最新版本,執行如果需要閱讀額外的安裝命令行工具時的幫助文件,可以瀏覽使用命令設置好賬戶,這個命令會為你創建一個命名空間,然后上傳你的到服務器上。也有一個插件,但這篇文章中,我會使用命令行工具。 在30天學習30種新技術的第六天,我決定去學習一個 web 開發框架 : Grails。 Grails 是一個基于 Groovy 和 Java 的開源 Web 框架。它是 J...
閱讀 2861·2021-10-14 09:50
閱讀 1218·2021-10-08 10:21
閱讀 3646·2021-10-08 10:16
閱讀 3063·2021-09-27 14:02
閱讀 3135·2021-09-23 11:21
閱讀 2109·2021-09-07 10:17
閱讀 407·2019-08-30 14:00
閱讀 2105·2019-08-29 17:26