看jms消息服务 代码如下
报错的地方是 QueueConnection qcConnection = qFactory.createQueueConnection();
jodi的配置是 :
java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory
java.naming.provider.url=tcp://loclhost:61616
java.naming.security.principal=system
java.naming.cesurity.credentials=manager
#connectionFactoryNames=QueueCF
topic.topic1 = jms.topic1
connectionFactoryNames = QueueCF
queue.LoanRequestQ = jms.LoanRequestQ
queue.LoanResponseQ = jms.LoanResponseQ
代码如下 :
package chapter4.p2p;
import java.util.Enumeration;
import javax.jms.ConnectionMetaData;
import javax.jms.JMSException;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
/*
* 获取 jndi中的元数据
*/
public class MetaData {
public static void main(String[] args) {
try {
Context context = new InitialContext();
QueueConnectionFactory qFactory = (QueueConnectionFactory) context.lookup("QueueCF");
System.out.println(qFactory);
// createQueueConnection() 报了 Could not connect to broker URL: tcp://10.183.47.191:61616. Reason: java.net.ConnectException: Connection refused
QueueConnection qcConnection = qFactory.createQueueConnection();
qcConnection.start();
ConnectionMetaData metaData = qcConnection.getMetaData();
System.out.println("jms version " + metaData.getJMSMajorVersion()+"."+metaData.getJMSMinorVersion());
System.out.println("jms provider " + metaData.getJMSProviderName());
System.out.println("jmsx properties supported :");
Enumeration e = metaData.getJMSXPropertyNames();
while (e.hasMoreElements()) {
System.out.println(" " + e.nextElement());
}
} catch (NamingException e) {
e.printStackTrace();
} catch (JMSException e) {
e.printStackTrace();
System.exit(1);
}
}
}
百度l mac下擦找端口 lsof -i tcp:61616 但是一直没显示信息 ,请问这个是什么问题呢 ?是端口占用还是jndi的配置不对 ?