2014-09-19 74 views
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(); 
    } 
    } 
} 

回答

0

Sholud已經完成了ActiveMQConnection連接= connectionFactory.createConnection();而不是Connection connection = connectionFactory.createConnection();.現在代碼運行良好。

+0

不是理想的解決方案,連接應該是通用的,因爲某些客戶可能喜歡使用不同的隊列,例如: websphere MQ而不是activeMQ。 – user3007165 2017-08-14 04:25:13

相關問題