Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在SessionScoped CDIBean中注入无状态EJB_Java_Jakarta Ee_Ejb_Cdi - Fatal编程技术网

Java 在SessionScoped CDIBean中注入无状态EJB

Java 在SessionScoped CDIBean中注入无状态EJB,java,jakarta-ee,ejb,cdi,Java,Jakarta Ee,Ejb,Cdi,我想知道当会话处理的CDIBean被钝化然后被激活时,注入的EJB代理会发生什么。是否存在空引用?还是重新注入EJB?感谢您的澄清。第6.6.3节。CDI规范中支持钝化的依赖项声明,无论您是否声明无状态bean可序列化,容器都保证无状态bean能够钝化 规范第6.6.5节指出,如果钝化作用域'@SessionScoped'例如声明了对非钝化功能依赖项的依赖项,则在部署时会发生错误 容器处理重新激活的方式取决于实现。当代理被反序列化时,它可以使无状态bean可序列化,或使代理可序列化,并更新对be

我想知道当会话处理的CDIBean被钝化然后被激活时,注入的EJB代理会发生什么。是否存在空引用?还是重新注入EJB?感谢您的澄清。

第6.6.3节。CDI规范中支持钝化的依赖项声明,无论您是否声明无状态bean可序列化,容器都保证无状态bean能够钝化

规范第6.6.5节指出,如果钝化作用域'@SessionScoped'例如声明了对非钝化功能依赖项的依赖项,则在部署时会发生错误


容器处理重新激活的方式取决于实现。当代理被反序列化时,它可以使无状态bean可序列化,或使代理可序列化,并更新对bean的引用。

第6.6.3节。CDI规范中支持钝化的依赖项声明,无论您是否声明无状态bean可序列化,容器都保证无状态bean能够钝化

规范第6.6.5节指出,如果钝化作用域'@SessionScoped'例如声明了对非钝化功能依赖项的依赖项,则在部署时会发生错误


容器处理重新激活的方式取决于实现。当代理被反序列化时,它可以使无状态bean可序列化,或者使代理可序列化,并更新对bean的引用。

添加到maress的答案中;由于无状态bean实际上是针对无状态的客户机的,因此容器不必为其序列化任何内容

对无状态bean的每一次调用都可以转到不同的bean实例,或者每一次调用都可以创建一个新的bean实例,如果我没有弄错的话,这是WildFly 8中的默认行为

正如maress提到的,从技术上讲,代理可以序列化,但是代理通常只从系统范围的池中获取实际的bean*,该池可以是零大小,并将所有方法调用委托给该池


*作为技术细节;代理可能不会直接调用实际bean,而是在调用实际bean之前调用拦截器链

添加到maress的答案中;由于无状态bean实际上是针对无状态的客户机的,因此容器不必为其序列化任何内容

对无状态bean的每一次调用都可以转到不同的bean实例,或者每一次调用都可以创建一个新的bean实例,如果我没有弄错的话,这是WildFly 8中的默认行为

正如maress提到的,从技术上讲,代理可以序列化,但是代理通常只从系统范围的池中获取实际的bean*,该池可以是零大小,并将所有方法调用委托给该池

*作为技术细节;代理可能不会直接调用实际bean,而是在调用实际bean之前调用拦截器链

>当代理被反序列化时,对bean的引用会被更新-我没有调查EJB实现的其他代理,但从概念上讲,我不认为代理持有对实际无状态bean的引用,但只需编写代码从池中获取它。也就是说,对同一代理的每一次调用都可能会转到不同的bean实例,因此代理保留对特定实例的引用没有多大意义。>当代理被反序列化时,对bean的引用会被更新-我没有调查EJB实现的每一个其他代理,但从概念上讲,我不认为代理持有对实际无状态bean的引用,而只是从池中获取它的代码。也就是说,对同一个代理的每一次调用都可能转到不同的bean实例,因此代理保留对特定实例的引用没有多大意义。