首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于WAR文件,Java 9也是模块化的吗?

对于WAR文件,Java 9也是模块化的吗?
EN

Stack Overflow用户
提问于 2017-09-29 21:32:32
回答 2查看 4K关注 0票数 28

Java 7应用服务器,特别是Servlet3.1容器,应该允许我们部署包含web应用程序的WAR文件。WAR文件本质上是一个具有部署描述符(web.xml)和其他几个元素的JAR。

另一方面,Java9引入了模块化JAR文件的概念,即带有模块描述符(module-info.class)的JAR,该JAR根据项目Jigsaw创建了一个模块。

那么,WAR文件也能包含一个模块描述符并生成一个“模块化WAR文件”吗?

是否已经有能够接受部署“模块化WAR文件”的应用服务器?

一般来说,在Java 9模块化方面,servlet容器和WAR文件的未来是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-24 09:40:04

目前,Java和java 9(拼图)模块之间没有链接。未来的Java版本可能会引入规范定义的行为,说明如何与jigsaw模块交互。

此时,当运行在JDK9上时,所有应用服务器都以“类路径模式”运行,这实际上意味着它们不使用拼图。

在大多数情况下,在war部署中引入模块信息只会导致部署问题,因为JDK可能尝试以与应用服务器其他部分不同的方式加载它。或者,它甚至不能产生影响,因为大多数应用服务器都有加载jars &类的自定义逻辑。

今天,一些应用服务器已经实现了某种模块化,比如OSGi(GlassFish,Some )或jboss (Wildfly),但在这个时候,jigsaw仍然有一些限制,无法在其之上运行这样的模块化系统。

因此,总之,除非有EE规范(可能是9+)被更新以描述EE部署应该如何在启用jigsaw的运行时上运行,否则这种部署的行为没有“正式”的方式。在此之前,每个应用服务器都可以实现对它的一些自定义支持,但它并不是标准的。

票数 18
EN

Stack Overflow用户

发布于 2017-09-30 03:46:47

因此,WAR文件也能包含一个模块描述符并生成一个“模块化WAR文件”吗?

是的,它可以。因为它现在基本上可以是http://openjdk.java.net/projects/jigsaw/spec/sotms/#module-artifacts,具有像web.xml这样的部署描述符。

一般认为servlet容器和WAR文件在Java9模块化方面的未来是什么?

从模块系统的动态配置方面来看,

特别是对于Java平台,目标是启用未来的模块化war文件标准,其中war文件中的组件可以是开发人员模块。

已经有能够接受部署“模块化WAR文件”的应用服务器了吗?

虽然我目前还不知道有任何这样的现有工具或服务器,但是创建模块罐的功能已经添加到JMODJAR工具中,它们提供了应用服务器和模块系统集成的未来视图。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46497172

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档