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
参考: CapeDwarf – JCG合作伙伴 Markus Eisele在Java的企业软件开发 上的Java EE上的Google App Engine 。

翻译自: 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相关推荐

  1. java开发工具IDEA JVM框架教程:Google App Engine配置

    IntelliJ IDEA 允许您创建 Google App Engine 项目并将您的应用程序上传到 Google 基础架构.确保您安装并启用了 Google App Engine 插件. 调试应用 ...

  2. 通过google app engine 在google cloud 部署支持quic的Java web 应用(多种方式)

    quic最先是由google提出并完善的,18年google cloud支持了quic协议,我尝试在google上部署一套自己的应用,并使其支持quic协议 google的文档还是非常完善的,只是类似 ...

  3. Google App Engine Java功能和命名空间API

    功能API 使用Capabilities API,您的应用程序可以检测特定API功能的停机和计划停机时间. 您可以使用此API来检测应用程序何时不可用,然后绕过它来减少应用程序的停机时间. 我们该如何 ...

  4. Google App Engine已经支持JAVA了

    虽然我对JAVA不怎么感冒,我还是不得不感叹一下Google动作的迅速,还有消息称Google有员工正在利用20%的时间让GAE支持Perl. 我个人比较喜欢Python,也玩了Google App ...

  5. google app engine for java 的web应用程序

    在IT业步入"云"时代的时候,Google App Engine无疑是引领"云"技术潮流的一支生力军.但在App Engine诞生后的很长一段时间里,它都只支持 ...

  6. java的app构建代码_适用于Java的Google App Engine,第2部分,构建杀手级应用

    java的app构建代码 存档日期:2019年5月14日 | 首次发布:2009年8月11日 像Google App Engine for Java™这样的云平台的全部要点是能够想象,构建和部署可扩展 ...

  7. Google App Engine上的Spring MVC和REST

    前段时间,我写了一篇关于如何使用Spring MVC实现Restful Web API的文章 . 阅读我以前的文章以了解它. 在那篇文章中,开发了一个简单的Rest示例. 为了测试该应用程序,将文件复 ...

  8. google app engine上传程序

    上传和管理 Java 应用程序 上传到 Google App Engine Eclipse Google 插件为 Eclipse 工具栏添加了几个按钮.使用"App Engine 部署&qu ...

  9. vaadin_5分钟内Google App Engine上的Vaadin App

    vaadin 在本教程中,您将学习如何创建第一个Vaadin Web应用程序,如何在本地AppEngine开发服务器上运行它以及如何将其部署到Google App Engine基础结构. 所有这些大约 ...

最新文章

  1. spring boot入门:@SpringBootApplication
  2. 表中查询重复的数据,如何通过sql语句查询?
  3. 蓝牙BLE ATT剖析(二)-- PDU
  4. gns3 1.3.9升级到gns3 1.3.11后,升级gns3 iouvm解决版本不匹配问题
  5. python如何关闭窗口仍能运行_Python在退出时关闭自己的CMD shell窗口
  6. 京东购物在微信等场景下的算法应用实践
  7. emlog和typecho文章采集插件-简数第三方数据采集
  8. Ecstore跳过后台激活验证和shopexId授权
  9. 微信小程序滚动条返回顶部
  10. c# Aspose.Words插入饼图PieChart
  11. SQL Server 2008支持将数据导出为 insert into 的脚本
  12. 【智慧医疗】破解医疗数据孤岛,实现信息共享
  13. Sqlserver-循环执行sql语句
  14. u盘跑显卡维修测试软件,GPU Caps Viewer(显卡检测工具)
  15. 电子身份证助力打击钓鱼攻击
  16. 第三版新视野大学英语读写教程4结业考点(1,2,3,5,6单元)
  17. 通过youtube上传视频赚钱并免费宣传你的业务
  18. UVa Problem 10001 Garden of Eden (伊甸园)
  19. mysql初始化后启动失败_初始化MySQL后服务不能正常启动
  20. 在mac电脑上,用Safari浏览器调试ios手机移动端页面

热门文章

  1. 纪中培训总结(2019年1月21~31日)
  2. JavaFX拖放事件
  3. DI 之Spring更多DI的知识
  4. Jdk1.8 JUC源码增量解析(2)-atomic-LongAdder和LongAccumulator
  5. 漫画:Bitmap算法 整合版
  6. 实体类?Dao接口?Mapper映射文件?都别写了!!!用这种方法就可以
  7. JQuery $作用
  8. 81. 搜索旋转排序数组 II---Leecode----java
  9. android微信分享之创建工程以及启动微信
  10. windows为什么把linux打败了,快二十年了,人们为什么还是没有抛弃 Windows 转向 Linux?...