有人知道它们是否很重要吗?我正在尝试创建一个WebLogic 12c应用程序。对于web.xml文件,这个xml声明是否正确:
<?xml version="1.0" encoding="windows-1252"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">这是我的application.xml声明:
<?xml version = '1.0' encoding="UTF-8"?>
<application xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/application_7.xsd" version="7">如果我有这样的version="5“而不是version="7",这有关系吗?这是不是告诉它使用Java EE 5规范,或者因为我使用的是12c,所以无论如何它都将是Java EE 7:
<?xml version = '1.0' encoding = 'windows-1252'?>
<application xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/application_5.xsd" version="5">发布于 2017-01-05 23:40:11
在JavaEE 7之前,所有常见的注释,如@Path或@WebListener,都必须在部署描述符中列出。引入这些注释之后,您现在就可以让它们来完成类-角色绑定了。
但是..。它们不是过时的,web.xml具有优先权,并且将覆盖注释。这使得编码器可以很容易地为开发和测试目的设置一些设置,并让部署人员在不接触代码的情况下将其设置为更“可部署”的内容。
发布于 2017-01-05 23:40:17
有一个很好的原则叫做“早点失败”。这意味着,越早发现错误越好。而且一旦检测到错误就报告它,不要继续。这是因为如果您继续使用错误的数据或在错误的状态下运行,所造成的损害将比您立即失败时更高。
例如:考虑从帐户A向B转账的系统,计算出最终的金额。计算中的错误导致金额为负数。一旦你检测到这一点,哪个更好:不能继续,实际上是向帐户A添加一些钱,并从帐户B中删除,尽管需要相反的操作?
XML中的模式也是如此。如果应用程序(在您的例子中是Java容器)无法验证XML,这比它错误地部署您的应用程序要好。不正确的部署可能会导致类似上面描述的错误。
发布于 2017-01-05 23:40:31
是的,如果您使用的是JavaEE7--使用新的部署描述符。命名空间已更改。
您可以比较http://java.sun.com/xml/ns/javaee/application_5.xsd和http://xmlns.jcp.org/xml/ns/javaee/application_7.xsd之间的差异
更改的摘要记录在此处- https://antoniogoncalves.org/2013/06/04/java-ee-7-deployment-descriptors/
即使使用旧的描述符,应用程序服务器也可能会接受您的应用程序,但这可能只是为了向后兼容。如果您确定您的应用程序是基于Java EE 7的,那么强烈建议您使用新的描述符名称空间。
https://stackoverflow.com/questions/41488784
复制相似问题