繁体   English   中英

依赖项注入不适用于@ClientEndpoint Java

Dependency Injection Not working for @ClientEndpoint java

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

有什么方法可以在此@ClientEndpoint类中启用cdi(仍然使用注释而不是编程终结点类)? 我正在使用wildfly 14和Java 8。

这是创建会话的代码,将类名传递给“ createConnection”方法:

@ApplicationScoped //TODO move this to be request scoped
public class SessionProducer {

@Produces
public Session getSession(InjectionPoint ip) {
        SessionAnnotation annotation = ip.getAnnotated().getAnnotation(SessionAnnotation.class);
        if(annotation != null) {
            Class clazz = annotation.clazz();
            String url = annotation.serverURL();
              WebSocketContainer webSocketContainer = ContainerProvider.getWebSocketContainer();
                try {
                    return webSocketContainer.connectToServer(clazz, new URI(url)); //<----------this is the line that uses the annotated class (clazz is a reference to the class)
                } catch (DeploymentException | IOException | URISyntaxException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
        }
        return null;    
    }   

/**
 * The destroy/disposer metho for the session
 * @param session
 */
public void close(@Disposes Session session) {

       try {
        session.close();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    }
}

这是带注释的端点类:

@ClientEndpoint
public class CryptoCompareWSClient {

@Inject
@CryptoCompare
private Event<String> cryptoCompareEvent; //<--------this is always null, no cdi happens

public CryptoCompareWSClient() {
    System.out.println("constructor");
    //cryptoCompareEvent = new Event();
}

@PostConstruct
public void init() {
    System.out.println("post construct"); //<---------this never gets called
}

@OnOpen
public void open(Session session) {
    //session.getAsyncRemote().sendText("SubAdd: { subs: ['0~Poloniex~BTC~USD'] }"  /*"test"*/);
    System.out.println("opened");
}


 @OnClose
public void close(Session session) {
    System.out.println("Session " + session + " closed");
}

 @OnError
 public void error(Throwable error) {
    System.out.println("Error: " + error.getMessage());
}

 @OnMessage
 public void message(String message, Session session) {
     System.out.println("Message");
     //cryptoCompareEvent.fireAsync(message);
 }
 }

有什么方法可以在启用的类中启用cdi吗?

谢谢。

问题暂未有回复.您可以查看右边的相关问题.
1 简单的依赖注入不起作用

这是我第一次使用依赖注入,这让我有些困惑。 我不太了解它是如何工作的。 我试过一个简单的例子: 但是,当我使用create()方法时,我为$brand得到了一个空指针异常。 我想我误解了DI的工作原理,但是我找不到我的错误。 ...

4 模型上的依赖注入不起作用

我打算在模型中编写依赖注入。 但是,发生以下错误。 Too few arguments to function App\\\\Models\\\\Conference_list::__construct() 我不知道我做错了什么。 模型中没有依赖注入? ...

2019-02-22 11:38:28 2 43   laravel
5 为什么依赖项注入无效?

我在依赖注入中遇到问题,我得到的错误是: 虽然我将JwtToken包含在APIsController中,如下所示: 我确实将该方法称为: 我还将软件包注册为:[config \\ app.php]:在提供程序中: 那么,为什么依赖项注入不起作用? 这是完整的 ...

6 依赖注入如何工作?

我正在阅读Pro Spring 2.5书,我对依赖注入如何工作有疑问。 我理解BeanFactory并进行依赖查找。 现在我读到依赖注入,我有一些问题。 根据我的理解,您希望将查找限制到最小,例如查找对象以启动应用程序。 然后依赖注入将处理其余的事情。 但是我不明白这是有效的。 ...

7 具有构造函数的依赖注入不起作用

我有以下代码 和 由于某些原因,未传递NInject设置的参数。有人知道为什么会这样。 设置使用的是EmailSettings内部的所有值,而不是使用EmailSettings传递的值? ...

2013-10-20 19:31:58 1 170   ninject
8 Java 模块化与依赖注入

让我们假设一个基于OpenJDK 11 + OpenJFX 11的应用程序。 代码库组织在单个 java 模块中(请参阅Java 9 模块化指南以供参考)。 到目前为止,我将所有基于JavaFX的项目与 Google 的依赖注入框架Guice 结合起来。 对于模块化项目,这似乎不起作用...... ...

10 Java中的泛型和依赖注入

我正在开发将JAX-RS用于WebLayer的Java EE应用程序。 我试图解决这个问题。 因此,您将看到的代码只是一个切口。 现在一切正常。 如您所见,我有一个UserEndpoint ,客户端可以在其中创建新用户。 完成所有操作后, VerificationService将发 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM