ski*_*kip 9 jms message-driven-bean java-ee-6 glassfish-3
我无法javax.jms.ConnectionFactory
注入我的独立JMS客户端.我得到一个java.lang.NullPointerException
在connectionFactory.createConnection()
下面的代码.
JmsClient.java
public class JmsClient {
@Resource(mappedName="jms/QueueConnectionFactory")
private static ConnectionFactory connectionFactory;
@Resource(mappedName="jms/ShippingRequestQueue")
private static Destination destination;
public static void main(String[] args) {
try {
Connection connection = connectionFactory.createConnection();
connection.start();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
MessageProducer producer = session.createProducer(destination);
ObjectMessage message = session.createObjectMessage();
ShippingRequestQueue shippingRequest = new ShippingRequestQueue(1, "107, Old Street");
message.setObject(shippingRequest);
producer.send(message);
session.close();
connection.close();
System.out.println("Shipping request message sent ..");
} catch (Throwable ex) {
ex.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我使用Glassfish 3.1管理控制台在Open MQ(MoM)上创建了相应的连接工厂和目标资源.
有人能帮我理解我错过了什么吗?
资源注入仅在托管环境中工作,例如Java EE应用程序服务器或Spring容器.在独立的应用程序中,JNDI是您唯一的选择.
通常,注释意味着由某个工具/框架处理,而执行main()
方法的普通JVM 根本不包含这样的注释.我所知道的唯一由JVM处理的注释是编译时@Deprecated
,@Override
和@SuppressWarnings
.
回复你的评论:我无法访问这本书,所以我只是猜测他们可能会描述运行应用程序客户端组件而不是 独立的应用程序客户端.它不一样 - 检查Glassfish EJB FAQ.ACC通常部署到应用程序服务器中,可以通过Java Web Start或没有它来执行,但是以AS特定的方式执行.请参阅Glassfish示例(您没有说明您的EJB执行的内容).
归档时间: |
|
查看次数: |
13974 次 |
最近记录: |