标签: openwebbeans

在 CDI 钝化能力 bean 中,是否可以重新注入而不是钝化非钝化能力依赖项?

在 CDI 钝化能力 bean 中,是否可以重新注入而不是钝化非钝化能力依赖项?

考虑这个代码:

@SessionScoped
public class UserData implements Serializable {
  @Inject
  private Logger log;
  private String data;
}


@ApplicationScoped
public class LoggerFactory {
  @Produces
  public Logger getLogger(){
  ...
  }
}

public class Logger {
...
}
Run Code Online (Sandbox Code Playgroud)

那么Logger不是 Serializable,但我真的不在乎。何时UserData反序列化,是否可以以Logger某种方式再次调用生产者?

编辑

最初的讨论从这里开始:

http://www.cdi-spec.org/news/2015/07/03/CDI-2_0-EDR1-released/#comment-2119769909

希望 CDI 专家组想出比这更好的方法 @Instance

java cdi jboss-weld openwebbeans jakarta-ee

5
推荐指数
1
解决办法
4087
查看次数

与 Tomcat 10 一起使用时,OpenWebBeans 出现错误 java.lang.NoClassDefFoundError

我正在尝试将 OpenWebBeans 与 Tomcat 10 一起使用。我已按照此链接中给出的步骤进行操作。

当我使用 Weld 时,效果很好。但是当我使用 OpenWebBeans 时,出现以下错误。

SEVERE: Error configuring application listener of class [org.apache.webbeans.servlet.WebBeansConfigurationListener]
java.lang.NoClassDefFoundError: javax/servlet/ServletContextListener ... 
Run Code Online (Sandbox Code Playgroud)

我的pom文件如下

<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>minimal</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<properties>
    <project.build.sourceEncoding>
        UTF-8
    </project.build.sourceEncoding>
    <project.reporting.outputEncoding>
        UTF-8
    </project.reporting.outputEncoding>
    <maven.compiler.source>11</maven.compiler.source>
    <maven.compiler.target>11</maven.compiler.target>
    <failOnMissingWebXml>false</failOnMissingWebXml>
</properties>
<dependencies>
    <dependency>
        <groupId>jakarta.annotation</groupId>
        <artifactId>jakarta.annotation-api</artifactId>
        <version>2.0.0</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.glassfish</groupId>
        <artifactId>jakarta.faces</artifactId>
        <version>3.0.0</version>
    </dependency>
    <dependency>
        <groupId>jakarta.servlet.jsp.jstl</groupId>
        <artifactId>jakarta.servlet.jsp.jstl-api</artifactId>
        <version>2.0.0</version>
    </dependency>
    <dependency>
        <groupId>jakarta.enterprise</groupId>
        <artifactId>jakarta.enterprise.cdi-api</artifactId>
        <version>3.0.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.openwebbeans</groupId>
        <artifactId>openwebbeans-jsf</artifactId>
        <version>2.0.21</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate.validator</groupId>
        <artifactId>hibernate-validator</artifactId>
        <version>7.0.1.Final</version>
    </dependency>
    <dependency>
        <groupId>jakarta.servlet</groupId>
        <artifactId>jakarta.servlet-api</artifactId> …
Run Code Online (Sandbox Code Playgroud)

cdi classnotfoundexception openwebbeans jakarta-ee tomcat10

2
推荐指数
1
解决办法
1263
查看次数