java创建ee项目

又是一年中的这个时候。 圣诞节假期快到了,Java Advent Calender不断填满。 今天要写我的惊喜帖子。 我是Markus ,也称为@myfear , 多年来我一直在与Java EE和一堆相关服务器一起使用,并且一直在使用它们。 除了日常工作外,我还开始通过Java EE 7版本更加积极地为Java EE专家组做出贡献。 一段时间以来,由于EE 7已经面世,现在已经可以开始计划该平台的下一个修订版了,很可能称为Java EE8。Oracle进行了社区调查 ,他们希望从社区中获取意见。关于他们打算添加的某些功能的相对重要性。 首先,这应该鼓励感兴趣的读者参加并参加调查 。 其中的一个特别要点是有关对基于HTML 5的动态应用程序的支持。 尽管WebSocket和JSON Processing已将其纳入Java EE 7中,但目前还有另一项功能,尤其是GlassFish和WebLogic(通过Jersey )中的一些功能,可以标准化。 服务器已发送事件(SSE)。 它已经是HTML5规范的一部分,将是标准化的很好的候选者。 但是Oracle还在进一步考虑,并在询问是否有足够的支持和兴趣来真正标准化Java EE服务器上JavaScript的使用。 当这种问题开始出现在JavaOne 2012上时,在Nashorn上基本上被称为Node.jar 。 从今年9月开始,我们知道了真实的名字: Project Avatar 。

头像一览

Project Avatar提供了一个JavaScript服务层,用于支持REST,WebSockets和服务器发送的事件,并提供了一个丰富的客户端框架,该框架假定了很少JavaScript知识。 服务端侧重于使用JavaScript构建数据服务,而可选客户端端侧重于支持HTML5和TSA(瘦服务器体系结构)。

Avatar项目(来源: avatar.java.net )

瘦服务器架构

随着HTML5,CSS3和快速JavaScript引擎的引入,现代浏览器已成为功能强大的平台。 随着所谓的单页应用程序(SPA)(也称为单页界面(SPI))的出现,现代用户界面的设计已从服务器端生成转移到适合单个网页的Web应用程序或网站。目的是提供类似于桌面应用程序的更流畅的用户体验。 SPA将逻辑从服务器移至客户端。 这导致Web服务器的角色演变为纯数据API或Web服务。 这种架构方法被称为“瘦服务器架构”,以表明复杂性从服务器转移到客户端,同时降低了整体系统的复杂性。

阿凡达到底是什么?

但是,Avatar不仅限于TSA方法。 它主要包括三个部分。 该基础由即将到来的Java 8构建,并且包括称为NashornJavaScript实现。 最重要的是Avatar Runtime,其中包括一个附加的编译器层和一个基于Servlet API的服务器。 这些抽象使它可以在各种运行时中托管。 Avatar应用程序由客户端“视图”,服务器端“服务”或两者组成。 重要的是,它们之间不存在固有的耦合,这使视图可以与现有服务进行通信,并允许任何类型的客户端使用服务。 应用程序“归档”部署在服务器上,并进行编译以生成针对该应用程序定制JavaScript。 生成的用于视图JavaScript处理与DOM / UI的数据绑定以及对远程服务和本地存储的数据管理。 Avatar存档与Java EE Web存档有些相似。 它们由WEB-INF文件夹,根目录中的avatar.properties文件以及视图目录和/或服务目录组成。 Avatar支持文件系统目录或.zip(.war)文件。

服务器上剩下的所有内容–服务

服务扩展了REST,WebSocket或Push(SSE)抽象,并且其生命周期完全由框架处理。 服务实现可以利用内置的Node模块以及大多数第三方模块。 由于Nashorn支持直接调用Java代码,因此您也可以直接使用大多数Java库。

客户端–视图

视图是浏览器所需HTML。 它还包含自定义的“数据” HTML扩展名和简单JavaScript模型。 在将包含自定义生成JavaScript的完整SPA HTML文件发送到浏览器之前,这些视图将由(服务器端)编译器翻译。

一个简单的例子。

Oracle为Avatar提供了一套不错的示例和文档,基本上足以让您入门。 亲自尝试的第一件事是针对您的OS的JDK 8 Early Access Build 。 在撰写本文时,我尝试使用最新的Developer Preview b118。 安装后,您需要获取最新的GlassFish Open Source Edition 4.0服务器并将其解压缩到合适的位置。 通过将<jdk8> / bin放入PATH环境变量或将以下条目添加到<gf4> / glassfish / config asenv.bat / conf中,确保它与已安装的JDK 8一起运行。

set AS_JAVA=<jdk8>

不要继续下载最新的avatar-1.0-ea.zip并将其扩展到<gf4> / glassfish /目录。 之后,您需要设置AVATAR_HOME环境变量并将其指向<gf4>安装目录。 并确保将%AVATAR_HOME%\ glassfish \ bin添加到PATH环境变量中。

如果完成所有这些操作,则可以切换到工作区文件夹并发出以下命令,以使Avatar为您创建一个简单的示例应用程序:

avatar new --example=hello

它创建一个基本的“ hello”应用程序,该应用程序仅包含一个视图。 这是一个开始探索的好地方,之后您可以直接启动Glassfish实例,并像处理每个典型Java EE应用程序一样部署该应用程序:

asadmin start-domainasadmin deploy hello

“您好示例”应用。

将浏览器指向http:// localhost:8080 / hello将显示该应用程序。 您可以直接编辑位于<workspace> /hello/view/src/hello.html的视图。 在服务器运行时,Avatar负责直接为下一个请求重新编译。 这确保了快速发展。 此行为由avatar.properties文件中的“ debug = true”属性控制,可以针对生产型系统进行更改。 进一步,将其设置为false会导致在交付之前最小化所有.js和.css文件。

至少如果您首先下载并将所需的YUI压缩程序( jar下载 )首先添加到Avatar中。 由于许可证限制,它没有捆绑在一起。 只需将其放入<gf4> / glassfish / modules / avatar-ext / lib。 您可能需要首先创建该目录。

除了这个非常简单的示例,它根本不提供任何服务,还有更复杂的示例,可以通过%AVATAR_HOME%/ Project-Avatar-examples /进行分发。 为了方便起见,有完整的example.ear可供直接部署和测试。 要访问示例,只需在示例名称前加上“ demo-”即可。 因此,可以通过http:// localhost:8080 / demo-rest /访问“ rest”示例。

TodoMVC –带有头像的示例应用

您必须注意要在不同示例中展示的不同功能。 如果您想了解Avatar如何处理持久性,则可以仔细研究使用FileDataProvider保存项目的其余示例。 另一个有趣的示例是基于TodoMVC的应用程序( http:// localhost:8080 / demo-todo / )。 它展示了一个更复杂的视图,该样式也已进行了样式设置。

接下来是什么?

截止到今天,没人知道阿凡达会发生什么。 总体上,社区反馈并没有很大声或令人兴奋。 我猜这是因为没人真正知道该怎么做。 到目前为止,最大的缺点是,它仅与GlassFish一起运行,这将进一步限制采用率和社区利益。 鉴于事实,SSE并不是Java EE规范的一部分,这可能会使将其移植到其他应用程序服务器上变得更加困难。 即使许可证( 具有Classpath Exception的GPL2 )应该允许它。 回到最初的调查,以及有关指定服务器端JavaScript与Java EE集成的想法,您至少知道Oracle在谈论Avatar时在谈论什么。 继续进行调查,并告诉他们您对在Java EE中拥有这种东西的想法。

祝您节日快乐,新的一年充满和平与繁荣。

参考: Project Avatar –下一个Java EE功能? 在Java Advent Calendar博客上从我们的JCG合作伙伴 Markus Eisele处获得。

翻译自: https://www.javacodegeeks.com/2013/12/project-avatar-the-next-java-ee-feature.html

java创建ee项目

java创建ee项目_项目头像–下一个Java EE功能?相关推荐

  1. 项目头像–下一个Java EE功能?

    又是一年中的这个时候. 圣诞节假期快到了,Java Advent Calender也在不断填满. 今天要写我的惊喜帖子. 我是Markus ,也称为@myfear , 多年来我一直在与Java EE和 ...

  2. java实验常见错误_求高手点拨一个Java SWING的IM系统实验的错误解决方案。

    高手,您好: 小弟遇到的代码场景为: 制作了一个Java SWING技术结合Socket技术实现的IM通信实验. 通信为双向全双工通信,通信方分为S端和C端. 下面,小弟贴出小弟的全部实验源代码,请高 ...

  3. java linux解压_在LINUX下 用JAVA如何解压rar文件

    展开全部 楼主试试这个代码~~ package decompress; import java.io.File; import java.io.FileOutputStream; import org ...

  4. java窗体 个人信心_帮忙写下代码java swing,个人信息实例

    展开全部 本人急忙62616964757a686964616fe59b9ee7ad9431333332636264做的:有什么不合要求的请再告诉我: package show; import java ...

  5. java mplayer 源码_师兄写的一个JAVA播放器的源代码

    MediaPlayer.java ---------------------------------------------------------------------------- //程序主文 ...

  6. JAVA 创建带个人信息,头像等内容和可变二维码的海报

    文章目录 JAVA 创建带个人信息,头像等内容和可变二维码的海报 1.添加二维码依赖包 2.写画图工具类 3.运行main 方法 4.防止重复创建 JAVA 创建带个人信息,头像等内容和可变二维码的海 ...

  7. java护照号码校验_学无止境之小白学java……第001天

    学习主题:预科阶段 对应视频: http://www.itbaizhan.cn/course/id/18.html 对应作业: 1. 为什么需要学编程,什么样的人可以做程序员? 编程是现实逻辑的表达, ...

  8. 编译运行一个java程序_如何从另一个Java程序编译和运行Java程序

    编译运行一个java程序 Have you ever thought if it's possible to compile and run a java program from another j ...

  9. Interview:Java岗位面试—面试求职攻略之一个JAVA程序员面试心得(非常值得收藏)

    Interview:Java岗位面试-面试求职攻略之一个JAVA程序员面试心得(非常值得收藏) 导读 据网上资料显示:2018年互联网行业是寒冬,其他行业日子也不好过.各个互联网大厂纷纷缩招减员,严格 ...

最新文章

  1. 图解机器学习:人人都能懂的算法原理(附链接)
  2. 第十七届全国大学生智能车竞赛航天智慧物流创意组-第二次线上技术培训
  3. ORA-00257: archiver error. Connect internal only, until freed
  4. 关于论文检索的几点知识
  5. class反编译_IDEA反编译功能小试牛刀
  6. 乐高ev3涉及到的一些赛事_使您成为英雄的前五名开发者技能(提示:涉及LEGO)
  7. java设置框架位置_怎样设置label的位置啊?求指导
  8. 运维测试工作笔记0001---单台普通8G内存的服务器-可以达到的http并发量
  9. NSURLCache详解和使用
  10. Egret入门学习日记 --- 问题汇总
  11. 我们应该如何去了解JavaScript引擎的工作原理
  12. WKWebview的内存问题
  13. Unity 自动寻路入门 NavMeshComponents
  14. [转]VS2013+简单稀疏光束调整库SSBA配置(64位编译)
  15. 从怎样解题到怎样解决问题
  16. 判断一个数是否是素数
  17. 电子商务法律法规【1】
  18. 数字图像处理不得不知的点(1)
  19. 服务器怎么设置自动拨号,网件路由器怎么设置自动拨号
  20. 百度网盘mac损害计算机,Mac 电脑百度网盘一直闪退怎么办?解决办法

热门文章

  1. vue、css修改滚动条样式
  2. 锂电池切换平衡解决方案ETA3000
  3. 分享88个PHP留言日记源码,总有一款适合您
  4. 读书笔记(十四)-- 管理十诫
  5. Mybatis 调用SqlServer 和 Oracle的存储过程实例
  6. C# IP地址和整数之间的转换,IP地址和数字ip地址的转换
  7. c++中引用及指针详解
  8. 使用HTML5和CSS3开发电子商务网站——第一章,课后作业
  9. Javascript 设计游戏
  10. 浅析国内外的电子烟行业及市场现状