GlassFish / Payara 4.x中glassfish-application.xml和glassfish-web.xml之间的区别是什么?

时间:2018-01-16 00:58:47

标签: java-ee glassfish payara

对于所有可想象的实现对,Java EE和Web配置文件之间的差异有很多解释(" Tomcat和GlassFish之间的区别"," GlassFish和JBoss"之间的区别是什么,这对我来说非常清楚。对glassfish-web.xml vs sun-web.xml vs web.xml以及The difference between web.xml, beans.xml, applicationContext.xml, etc提出了很好的问题,但它们都链接到GlassFish 3.x文档[1]。

我想在

上有一些明确的陈述
  • glassfish-application.xmlglassfish-web.xml之间的优先级,意味着一个覆盖另一个(web覆盖应用程序可能是合乎逻辑的,因为类加载顺序是反转的)或是从两者中选择的选项?
  • 我可以期待拾取文件的可能位置。我假设应用程序的耳朵为/,而应用程序描述符为战争(耳内)的/WEB-INF/
  • 是否可以在两个文件中指定可以在其他文件中指定的任何值,例如web.xmlbeans.xml,如果是,那么优先级是什么呢?
  • 战争打包(与耳包相比)Java EE应用程序的情况是什么?

我认为Payara和GlassFish之间没有区别,因为前者被设计为替代品 - 事实上documentation is practically not found by google与Payara和GlassFish 4.x相同。

[1]这是GlassFish的 主要问题 - 大部分时间只有通过手册,博客和SO问题链接提供的3.x文档,你必须尝试所有事情都假定它可能不起作用,因为某些东西从3.x变为4.x导致n个问题的复杂性。

1 个答案:

答案 0 :(得分:4)

  

glassfish-application.xml和glassfish-web.xml之间的优先级,意味着覆盖另一个(Web覆盖应用程序可能是合乎逻辑的,因为类加载顺序是反转的)或是从两者中选择的选项吗?

glassfish-application.xml适用于.ear个文件,而glassfish-web.xml适用于.war个文件。对于.war中的.earglassfish-web.xml会覆盖glassfish-ejb.xml内声明的设置。

  

我可以期待拾取文件的可能位置。我假设/在耳边为应用程序和/ WEB-INF /在战争中(在耳内)为应用程序描述符

如果您指的是文件的位置,glassfish-application.xml应放在META-INF的{​​{1}}旁边,.earMANIFEST.MF 1}}应放在glassfish-web.xml旁边,WEB-INF

  

是否可以在两个文件中指定可以在其他文件中指定的任何值,例如web.xml或beans.xml,如果是,那么优先级是什么?

是的,标准JavaEE部署描述符,因此beans.xmlweb.xml等受到尊重,但是如果存在特定于服务器的部署描述符(即beans.xml),则会覆盖它们。< / p>

  

战争打包(与耳包相比)Java EE应用程序的情况是什么?

在war-packaged应用程序中,您应该坚持使用glassfish-web.xml部署描述符。这将覆盖JavaEE glassfish-web.xml部署描述符中设置的值,但两者都将被读取。

  

我认为Payara和GlassFish之间没有区别,因为前者被设计为替代品 - 谷歌实际上找不到文档的事实与Payara和GlassFish 4相同。 X

由于Payara Server源自GlassFish,我们只记录扩展或修改默认行为的区域。因此,GlassFish 4文档https://javaee.github.io/glassfish/documentation4可用于Payara Server文档https://docs.payara.fish/中未提及的任何区域。我同意这确实能够找到你正在寻找的东西非常痛苦,特别是在GlassFish部署指南没有明确说明的情况下。事实上,GlassFish 5文档的很大一部分似乎与3.1.2相同,因此您可能距离当前答案不远。