CDI - 正确的 bean.xml 格式是什么?
CDI - what is the correct bean.xml format?
我对 bean.xml 文件的正确格式和用法有疑问。在我的项目中,我通常将此内容用于我的 bean.xml 文件(未使用 explizit bean 声明):
<?xml version="1.0" encoding="UTF-8"?>
<beans 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/beans_1_0.xsd">
</beans>
这在 WildFly 8 和 9 中运行良好。但我在 GlassFish 4 中遇到部署问题。在问题中:Glassfish 4, simple example in CDI fails with WELD-001408 Unsatisfied dependencies 我写了另一种格式:
<beans
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/beans_1_1.xsd"
bean-discovery-mode="all">
</beans>
使用了不同的命名空间。 GlassFish4 似乎很关心这一点。
用于 JEE7 的空 bean.xml 文件的正确格式是什么?
正确的空beans.xml
可以完全空文件,真的;-)
但是当您想要添加一些内容时,请注意大多数 XML 部署描述符命名空间已在 Java EE 7 中更新。这 post describes 详细信息。还添加了 bean-discovery-mode
。
顺便说一句:我现在使用的示例 beans.xml
看起来像:
<beans 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/beans_1_1.xsd"
version="1.2" bean-discovery-mode="annotated">
<!-- some content -->
</beans>
您可能会注意到 version="1.2"
属性的用法 - 您可以随意将其设置为 1.1
。它只是提醒 reader 该项目正在使用 CDI 1.2(实际上它只是 CDI 1.1[=28 的 维护版本 =]规格)。
我对 bean.xml 文件的正确格式和用法有疑问。在我的项目中,我通常将此内容用于我的 bean.xml 文件(未使用 explizit bean 声明):
<?xml version="1.0" encoding="UTF-8"?>
<beans 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/beans_1_0.xsd">
</beans>
这在 WildFly 8 和 9 中运行良好。但我在 GlassFish 4 中遇到部署问题。在问题中:Glassfish 4, simple example in CDI fails with WELD-001408 Unsatisfied dependencies 我写了另一种格式:
<beans
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/beans_1_1.xsd"
bean-discovery-mode="all">
</beans>
使用了不同的命名空间。 GlassFish4 似乎很关心这一点。
用于 JEE7 的空 bean.xml 文件的正确格式是什么?
正确的空beans.xml
可以完全空文件,真的;-)
但是当您想要添加一些内容时,请注意大多数 XML 部署描述符命名空间已在 Java EE 7 中更新。这 post describes 详细信息。还添加了 bean-discovery-mode
。
顺便说一句:我现在使用的示例 beans.xml
看起来像:
<beans 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/beans_1_1.xsd"
version="1.2" bean-discovery-mode="annotated">
<!-- some content -->
</beans>
您可能会注意到 version="1.2"
属性的用法 - 您可以随意将其设置为 1.1
。它只是提醒 reader 该项目正在使用 CDI 1.2(实际上它只是 CDI 1.1[=28 的 维护版本 =]规格)。