javax.enterprise.inject.Vetoed 打开 web beans,哪个 jar?

标签 java maven cdi openwebbeans

我想尝试 Open Web Beans 1.6.2,但它在其网站上列出了用于向 Java SE 应用程序添加 CDI 支持的 jar

openwebbeans-spi.jar
openwebbeans-impl.jar
geronimo-jcdi_1.0_spec.jar
geronimo-atinject_1.0_spec.jar
geronimo-interceptor_1.2_spec.jar
geronimo-annotation_1.2_spec.jar

似乎不包含 javax.enterprise.inject.Vetoed 注释,我必须添加 cdi-api 1.2 作为依赖项来解决该问题,但我不确定这是否正确,因为所有其他 CDI 依赖项均已通过上述解决?这是我的 pom 中的依赖项,这是正确的吗?

    <dependency>
        <groupId>org.apache.openwebbeans</groupId>
        <artifactId>openwebbeans-impl</artifactId>
        <version>1.6.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.openwebbeans</groupId>
        <artifactId>openwebbeans-spi</artifactId>
        <version>1.6.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-jcdi_1.0_spec</artifactId>
        <version>1.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-atinject_1.0_spec</artifactId>
        <version>1.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-interceptor_1.2_spec</artifactId>
        <version>1.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-annotation_1.2_spec</artifactId>
        <version>1.0</version>
    </dependency>
    <dependency>
        <groupId>javax.enterprise</groupId>
        <artifactId>cdi-api</artifactId>
        <version>1.2</version>
    </dependency>

这个link似乎建议在 Open Web Beans 1.5.0 中添加对 @Vetoed 的支持

最佳答案

请将 geronimo-jcdi_1.0_spec 升级到 jcdi_1.1 版本

<dependency>
  <groupId>org.apache.geronimo.specs</groupId>
  <artifactId>geronimo-jcdi_1.1_spec</artifactId>
  <version>1.0</version>
</dependency>

虽然你的问题很奇怪,因为你还有以下条目:

<dependency>
    <groupId>javax.enterprise</groupId>
    <artifactId>cdi-api</artifactId>
    <version>1.2</version>
</dependency

其中还包含@Vetoed,因此应该足够了。 maven 会以某种方式忽略它吗?

关于javax.enterprise.inject.Vetoed 打开 web beans,哪个 jar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33371099/

相关文章:

java - 在 Weld 中使用@EJB 作为注入(inject)注解

java - 是否可以调用 int 或 vector 的 Finalize 方法?

java - 如何将 Maven 指向 Java 源代码依赖项?

java - 使用 Thymeleaf 从 Spring Boot 中的 Jar/war 文件访问 HTML/JavaScript 文件

java - Spring InitializingBean 不适用于 CDI

java - CDI:来自同一 bean 的非拦截方法的拦截方法嵌套调用 - 应该调用吗?

Java - JScrollPane 与 JTable 不一致

java - 从固定大小的数组中删除 `int`

java - 在 Java 中使用 replace 和 replaceAll 替换连续的相同字符

java - FXMLLoader 未从 JUnitTest 加载(相对路径问题)