Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.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 如何为CDI/Weld喷射对象_Java_Jsf_Session_Cdi - Fatal编程技术网

Java 如何为CDI/Weld喷射对象

Java 如何为CDI/Weld喷射对象,java,jsf,session,cdi,Java,Jsf,Session,Cdi,我认为这是一个相当基本的问题,但我还没有找到解决办法。 我将如何“射出”一个对象,我以后希望将其作为要注入的对象 比如说,我们有一个ServiceA,它创建了一个对象 @Stateless public class ServiceA { public void createObject() { MyObject myObject = callSomeService(); ---> now put myObject into the session } }

我认为这是一个相当基本的问题,但我还没有找到解决办法。 我将如何“射出”一个对象,我以后希望将其作为要注入的对象

比如说,我们有一个ServiceA,它创建了一个对象

@Stateless
public class ServiceA {

  public void createObject() {

      MyObject myObject = callSomeService();
      ---> now put myObject into the session
  }
}
另一个服务B应该能够使用此对象:

@Stateless
public class ServiceB {

  //should be available here
  @Inject
  private MyObject myObject

}
我该怎么做?
谢谢你的帮助

您可能需要使用生产者方法

producer方法可以允许您在以下位置选择bean实现: 运行时,而不是在开发时或部署时

您可以在网上找到如何使用Producer方法的示例。看起来很有用

类似问题:


    • 您可能需要使用生产者方法

      producer方法可以允许您在以下位置选择bean实现: 运行时,而不是在开发时或部署时

      您可以在网上找到如何使用Producer方法的示例。看起来很有用

      类似问题:


      具体来说,您需要的生产者方法如下所示:

      @Produces
      @SessionScoped
      public MyObject createSessionObject() {
          return callSomeService();
      }
      

      这将为会话调用一次,第一次访问。

      具体来说,您需要的生产者方法如下所示:

      @Produces
      @SessionScoped
      public MyObject createSessionObject() {
          return callSomeService();
      }
      
      这将为会话调用一次,即第一次访问