java与java ee_CapeDwarf – Java EE上的Google App Engine
java與java ee
我有很多愛好。 從早期的Java EE規范一路走來,并用Java EE 7進行了“云”之旅,我很好奇看到新宣布的CapeDwarf項目有什么庫存,可以在內部引入Google的平臺即服務,提供“ Google App Engine ” 。
到目前為止的故事
我確實使用了App Engine。 在過去,這是對我來說第一個真正的PaaS產品。 我喜歡它。 我不喜歡的是,您必須檢查GAE是否能很好地發揮 Java風格。 6月底的幾天前, Google和Red Hat宣布了GAE TCK正式合作伙伴關系,遲早應該將App Engine引入Wildfly。
安裝和配置環境
讓我們馬上開始。 獲取CapeDwarf并試用它。 核心是Wildfly或AS7,因為我們大多數人仍然知道JBoss Applicationsserver。 CapeDwarf只是一個擴展模塊,需要內置。可以通過兩種方式獲取它:從下載頁面上獲取最新版本的Grep,該版本可能是Beta5(于2013-07-10發布),也可以自行構建。 我首先嘗試了最后一種方法,它在github項目頁面上有一個非常簡短的自述文件 ,但我不建議這樣做。 這大約需要30分鐘(純粹的構建時間),因為您還必須自己構建AS 7.2.0。 如果獲得了zip發行版,則只需解壓縮它,然后通過以下方式啟動啟用了CapeDwarf的服務器:
$JBOSS_HOME/bin/standalone.bat/.sh -c standalone-capedwarf.xml這看起來像是AS 7的第一個啟動,但事實上,由于JGroups啟動,它花費的時間要長得多。 至少在我的機器上。 無論如何,之后您必須添加管理員用戶并登錄http:// localhost:9090 /進入服務器控制臺,并通過訪問“擴展名”選項卡檢查擴展名是否存在。 現在您已經準備就緒。
使用留言簿示例應用程序
現在剩下要做的就是啟動所選的IDE(在我的案例中為NetBeans),并啟動一個不錯的演示項目。 讓我們堅持留言簿示例,它也是官方gae-sdk的一部分 。 您應該已經擁有Maven和Java 7。 該留言簿示例可作為正式原型獲得,您可以使用以下mvn命令簡單地獲得它:
mvn archetype:generate -B -DarchetypeGroupId=com.google.appengine.archetypes -DarchetypeArtifactId=guestbook-archetype -DarchetypeVersion=1.7.7 -DgroupId=net.eisele.demo -DartifactId=guestbook -Dversion=1.0 -Dpackage=net.eisele.demo您需要的所有依賴項都在中央,因此您甚至不必配置其他存儲庫! 立即打開生成的項目,并開始進行一些調整。 首先,您需要將pom.xml中的die appengine.target.version更改為1.8.3。接下來,您需要添加相關的數據存儲區索引。 據我了解,GAE自行完成此操作。 需要指導依賴于幾種現有Red Hat技術的CapeDwarf來啟動索引。 將datastore-indexes.xml添加到您的src / main / webapp / WEB-INF /文件夾中,其中包含以下內容:
<?xml version="1.0" encoding="utf-8"?> <datastore-indexes autoGenerate="true"><datastore-index kind="Greeting" ancestor="true" source="manual"><property name="date" direction="asc"/></datastore-index> </datastore-indexes>如果將<finalName> ROOT </ finalName>屬性添加到pom的<build>部分,就可以開始了。 通過管理控制臺部署該應用程序,或將其放入$ JBOSS_HOME / standalone / deployments文件夾。 你去。 導航到http:// localhost:8080 /并觀看魔術發生。
您可以張貼問候語,甚至可以使用電子郵件地址登錄并發表個性化評論。 一切都無需更改一行代碼。 您甚至可以將同一段代碼部署到App Engine。 進一步,如果您導航到http:// localhost:8080 / _ah / admin /,您將獲得一個漂亮的小型管理控制臺,該控制臺可讓您訪問基礎數據存儲。
即使Datanucleus在此游戲中也能很好地發揮作用,您可以通過將jdoconfig.xml中的javax.jdo.PersistenceManagerFactoryClass更改為org.datanucleus.api.jdo.JDOPersistenceManagerFactory來使示例運行。 如果現在正確使用了依賴版本(jdo-api:3.0.1,datanucleus-core:3.1.5),并且使用了正確的maven datanucleus插件:
<plugin><groupId>org.datanucleus</groupId><artifactId>maven-datanucleus-plugin</artifactId><version>3.1.2</version><configuration><api>JDO</api><log4jConfiguration>${basedir}/log4j.properties</log4jConfiguration></configuration><executions><execution><phase>process-classes</phase><goals><goal>enhance</goal></goals></execution></executions></plugin>您也可以這樣做。 試試看。 真的很容易。
目前有待改進
目前實施方式受到限制。 項目團隊似乎專注于官方GAE-TCK。 根據CapeDwarf主頁的說法,大多數API已經完成,26種服務中只有9種不支持。 鑒于我希望看到更多的文檔。 目前,這基本上取決于Google的官方文檔。 如果遇到一些特別的事情,那您就一個人了。 如果您對TCK有疑問,可以由新成立的Google網上論壇來解決。 好消息:項目負責人Ale?JustinReact靈敏,樂于助人,因為到目前為止我已經體驗過所有Red Hat Java專家。 如果您要查找示例,則CapeDwarf項目中基于Arquillian的測試范圍很廣。 因此,這是現在開始的好地方。
Google App Engine可以替代Java EE 8嗎?
底線是什么? 我認為GAE基礎設施已經成熟。 它于2008年4月推出,并于2011年底發布給公眾,它在滿足客戶需求方面擁有堅實的五年。 查看早期Java EE 7規范中來自云主題的定義,并將它們與GAE已實現的結果進行比較令人不安。 盡管EE在應用程序層上有非常不錯的技術削減,但GAE至少部分將其分解為面向服務的方式。 盡管您看到安全性之類的東西幾乎遍及SE / EE(JAAS,JASPIC,各個規范),但GAE只是提供了用于用戶管理的Users API和用于與其他系統集成的AppIdentity API 。 除此之外,它還提供Java EE根本無法提供的現成功能的API和抽象。 我在考慮Multitenancy API或Capabilities API之類的東西。 如果過去有人想在Google的PaaS上開始輕量級,并且想在以后遷移到基于本地硬件的Java EE,他必須仔細考慮映射技術并購買Google特定服務。 截止到今天,CapeDwarf已經大大改變了規則并降低了供應商鎖定風險。
如果您看一下規范方面,那是有缺點的。 Google負責。 只。 目前,我沒有任何咨詢委員會或類似機構。 因此,如果Google決定撤回(例如,讀者災難),許多人將被困住。 另一方面,開放的TCK至少使每個人都可以免費獲得該規范(ASL2.0)。 這就是使CapeDwarf和AppScale成為可能的根本原因。 目前至少對我而言,這不是更好的Java EE。 但是考慮到我們再次用Java EE 8展望陰暗的未來,這可能是需要完成的新規范的藍圖,也可能是我稱之為“以主題為中心的API”的很好的指南。 照顧業務需求,而不再只是解決技術問題。 在接下來的幾年中,這將是一個有趣的運動,我很好奇,是否還有其他供應商遲早會參加該培訓。 而可悲的是看到谷歌自己拉出來的JCP和標準組織內部的活性發展。
進一步的鏈接和閱讀
- 項目負責人的博客: http : //in.relation.to/Bloggers/Ales
- Github上的CapeDwarf: https : //github.com/capedwarf/
- CapeDwarf下載: http ://www.jboss.org/capedwarf/downloads
- App Engine TCK: https : //github.com/GoogleCloudPlatform/appengine-tck
翻譯自: https://www.javacodegeeks.com/2013/10/capedwarf-google-app-engine-on-java-ee.html
java與java ee
總結
以上是生活随笔為你收集整理的java与java ee_CapeDwarf – Java EE上的Google App Engine的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring Security with
- 下一篇: java vm_Java VM –提防Y