在eclipse中运行jms示例时,资源注入不起作用。

时间:2011-11-19 15:46:34

标签: eclipse java-ee glassfish jms code-injection

我想在eclipse中运行jms教程文件。我已正确配置glassfish并添加了jms资源。如果我在netbeans中运行它就可以了。

我在eclipse中创建了一个“应用程序客户端项目”。

以下是注入资源的地方:

 @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

它在http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.jst.j2ee.doc.user%2Ftopics%2Fcjappcliproj.html说:

  

应用程序客户端模块用于包含全功能客户端   连接并使用Java的Java™应用程序(非基于Web)   服务器中定义的EE资源。将客户端代码放入时   一个应用程序客户端模块,而不是一个简单的JAR文件,   应用程序客户端受益于服务器的资源(它没有   需要重新指定Java EE和服务器JAR文件的类路径)   以及更简单的JNDI查找(客户端容器填写   初始背景和其他参数)。

所以我似乎在正确的轨道上,但也许我错过了一些日食配置。

1 个答案:

答案 0 :(得分:4)

正如您已经注意到的,如果您在独立模式下运行应用程序,您将无法访问服务器资源,这是设计使然。您需要使用Glassfish appclient(或其他应用程序服务器的类似工具)才能运行Java EE Client App。 这是另一个可以帮助您将项目配置为正确运行的线程:eclipse howto start a application client on java ee glassfish appl srv