我無法將javax.jms.ConnectionFactory
注入到我的獨立JMS客戶端中。 我在下面的代碼中獲得java.lang.NullPointerException
在connectionFactory.createConnection()
。JavaEE 6:如何在獨立的JMS客戶端中注入JMS資源?
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();
}
}
}
我已經使用Glassfish的3.1管理控制檯創建相應的連接工廠和目標資源在打開MQ(MOM)。
有人能幫我理解我錯過了什麼嗎?
'@ Resource'不起作用,但使用JNDI名稱查找。 \t'Context jndiContext = new InitialContext(); \t \t ConnectionFactory connectionFactory =(ConnectionFactory)jndiContext.lookup(「jms/QueueConnectionFactory」); \t隊列目的地=(隊列)jndiContext.lookup(「jms/ShippingRequestQueue」);' – skip
謝謝,這對我很有用。 – Puckl