资源注入不';在eclipse中运行jms示例时无法工作。
我想在eclipse中运行jms教程文件。我已经正确配置了glassfish并添加了jms资源。如果我在netbeans中运行它,它可以正常工作 我在eclipse中创建了一个“应用程序客户机项目” 这里是注入资源的地方:资源注入不';在eclipse中运行jms示例时无法工作。,eclipse,jakarta-ee,glassfish,jms,code-injection,Eclipse,Jakarta Ee,Glassfish,Jms,Code Injection,我想在eclipse中运行jms教程文件。我已经正确配置了glassfish并添加了jms资源。如果我在netbeans中运行它,它可以正常工作 我在eclipse中创建了一个“应用程序客户机项目” 这里是注入资源的地方: @Resource(mappedName = "jms/ConnectionFactory") private static ConnectionFactory connectionFactory; @Resource(mappedName = "jms/Queue")
@Resource(mappedName = "jms/ConnectionFactory")
private static ConnectionFactory connectionFactory;
@Resource(mappedName = "jms/Queue")
private static Queue queue;
@Resource(mappedName = "jms/Topic")
private static Topic topic;
然后,当它到达这里时:
connection = connectionFactory.createConnection();
我得到一个NullPointerException。由于某些原因,它无法从服务器获取资源,因此它们为空
如果我在eclipse中构建项目,然后使用appclient从命令行运行该项目,它就会工作:
appclient Producer topic 4
这里说:
应用程序客户端模块用于包含全功能客户端
JAVA™ 连接并使用Java的应用程序(非基于Web)
在服务器中定义的EE资源。当您将客户端代码放入
一个应用程序客户机模块,而不是一个简单的JAR文件
应用程序客户机从服务器的资源中获益(它没有
需要重新指定Java EE和服务器JAR文件的类路径,如下所示
以及更容易的JNDI查找(客户端容器填充
初始上下文和其他参数)
因此,看起来我的思路是正确的,但可能我缺少了一些eclipse配置。正如您已经注意到的,如果您以独立模式运行应用程序,您将无法访问服务器资源,这是出于设计。您需要使用Glassfish
appclient
(或用于其他应用程序服务器的类似工具)才能运行Java EE客户端应用程序。
下面是另一个线程,可以帮助您配置项目以正确运行: