0
我一直在嘗試學習ActiveMQ和JMS。當我編譯下面的代碼時,我得到了上面的異常。雖然,我已經爲JMS和ActiveMQ附加了正確的jar文件。當我嘗試使用ConnectionFactory對象創建連接(即connectionFactory.createConnection())時,Eclipse要求我將一個強制類型轉換爲ConnectionFactory對象。我在互聯網上隨處可見的代碼與我寫的相同。該方法createConnection()未定義的類ConnectionFactory
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.DeliveryMode;
import javax.jms.Destination;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;
public class JMSProducer {
public static void main(String[] args) {
try {
// Create a ConnectionFactory
ConnectionFactory connectionFactory=new ActiveMQConnectionFactory("admin", "admin",
ActiveMQConnection.DEFAULT_BROKER_URL);
// Create a Connection
Connection connection = connectionFactory.createConnection();
//Error seen in above line
connection.start();
// Create a Session
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// Create the destination
Destination destination = session.createQueue("testQ");
// Create a MessageProducer from the Session to the Queue
MessageProducer producer = session.createProducer(destination);
producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
// Create a messages
TextMessage message = session.createTextMessage("Helloworld");
producer.send(message);
session.close();
connection.close();
System.out.println("Message sent");
}
catch (Exception e) {
System.out.println(e);
e.printStackTrace();
}
}
}
不是理想的解決方案,連接應該是通用的,因爲某些客戶可能喜歡使用不同的隊列,例如: websphere MQ而不是activeMQ。 – user3007165 2017-08-14 04:25:13