【发布时间】:2014-09-17 10:45:08
【问题描述】:
我有一个在 JavaEE 7 中实现的简单 WebSocket,我想充当 JMS 生产者。但是,当我尝试将 ConnectionFactory 和 Queue 作为 JavaEE @Resource 注入其中时,我总是看到它为空。我的代码如下所示:
@Named
@ServerEndpoint("/hello")
public class WebSocketA implements Serializable {
@Resource(mappedName = "java:/JmsXA")
private ConnectionFactory connectionFactory = null;
@Resource(mappedName = "java:jboss/exported/jms/queue/test")
private Queue testQueue = null;
...
}
我不能注入这些Resources 有什么原因吗?这在 JavaEE WebSockets 中不支持吗?我在 Wildfly 8.1 上进行部署,我的应用程序是一个简单的 WAR,其中只有 WebSocket 实现类。
【问题讨论】:
-
CDI 和 WebSockets (java.net/jira/plugins/servlet/mobile#issue/GLASSFISH-20468) 存在已知问题,但 AFAIK 它们不影响
@Resource注入。您是否尝试过其他服务器,可能是 Glassfish 4 以确保它不是 Wildfly 问题? -
我没有。我们的部署环境是 JBoss/Wildfly,所以我们需要确保我们可以让它在那个平台上运行。不幸的是,如果它适用于 Glassfish,它对我们没有帮助。
-
您确定配置的 JNDI-name 正确吗?您可以手动查找 JNDI 名称进行测试,例如,github.com/wildfly/quickstart/blob/master/helloworld-jms/src/…
标签: jakarta-ee jboss websocket jms wildfly