我正在尝试进行简单的点对点聊天,但在运行该程序后,我遇到了一个异常:
javax.naming.CommunicationException: Failed to get registry service for URL: tcp://localhost:8080/ [Root exception is java.rmi.ConnectIOException: Failed to create connection; nested exception is:
org.exolab.jms.net.connector.ConnectException: Failed to connect to localhost:8080]
at org.exolab.jms.jndi.InitialContextFactory.getInitialContext(InitialContextFactory.java:146)
at java.naming/javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:732)
at java.naming/javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:305)
at java.naming/javax.naming.InitialContext.init(InitialContext.java:236)
at java.naming/javax.naming.InitialContext.<init>(InitialContext.java:208)
at zad1.Receiver.<init>(Receiver.java:24)
at zad1.Client.lambda$new$0(Client.java:61)
....
有什么问题吗?我在这方面完全是个初学者。
这是我的代码:
private Context context;
private Connection connection = null;
private Session session;
private MessageProducer sender;
public Sender() {
try {
Hashtable<String, String> properties = new Hashtable<>();
properties.put(Context.INITIAL_CONTEXT_FACTORY, "org.exolab.jms.jndi.InitialContextFactory");
properties.put(Context.PROVIDER_URL, "tcp://localhost:8080/");
context = new InitialContext(properties);
ConnectionFactory factory = (ConnectionFactory) context.lookup("ConnectionFactory");
Topic topic = (Topic) context.lookup("topic1");
connection = factory.createConnection();
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
sender = session.createProducer(topic);
connection.start();
} catch (Exception ex) {
ex.printStackTrace();
System.exit(1);
}
}
public void send(String message) {
try {
TextMessage textMessage = session.createTextMessage();
textMessage.setText(message);
sender.send(textMessage);
} catch (JMSException ex) {
ex.printStackTrace();
}
}
来自异常的消息指示问题是什么:
Failed to connect to localhost:8080
配置JNDI查找时,请指定:
properties.put(Context.PROVIDER_URL, "tcp://localhost:8080/");
但是,JNDI实现无法建立到本地主机8080的连接。请确保URL适合您的环境和/或JNDI服务器实际运行在本地主机上的端口8080上。
最后,值得注意的是,您共享的异常的堆栈跟踪与您共享的源代码不匹配。堆栈跟踪来自名为Receiver的类的构造函数,但您共享的源代码是针对名为Sender的类的。
主要内容:添加JMS点对点采样器,添加监听器,保存并执行测试计划,验证输出创建JMeter测试计划 进入到文件夹,双击文件以启动JMeter界面。 单击“Test Plan”节点。 将此测试计划节点重命名为JMSpoint_to_point。 选择JMSpoint_to_point节点,然后右键单击所选项。 鼠标悬停在“add”选项上,然后将显示元素列表。 选择“Threads (Users) > Thread Group”。 将此线程组元素重命名为JMS User。
构建JMS点对点测试计划 现在让我们编写一个JMeter测试计划来测试JMS点对点消息传递解决方案。 测试的设置是一个线程组,其中一个线程或用户通过请求队列发送2条消息。 让我们从/home/manisha/apache-jmeter2.9/bin/jmeter.sh.启动JMeter /home/manisha/apache-jmeter2.9/bin/jmeter.sh. 。 添加用户 创建一
本文向大家介绍聊一聊Ajax的优缺点,包括了聊一聊Ajax的优缺点的使用技巧和注意事项,需要的朋友参考一下 Ajax,全称 Asynchronous Javascript and XML,是一个动态的WEB应用的开发技术,它的出现丰富了用户的体验。甚至用Ajax开发的WEB应用可以达到桌面应用程序的体验。当然,和其他技术一样Ajax同样也有其自身的优点和缺点。 使用Ajax的优点 1. 提升用户体
因此我知道JMS的核心组件是: 消息 目标 连接 会话 MessageProducer MessageConsumer 据我所知,消息是与其他实体(必须使用这些数据的其他产品)发送和共享的,消息可以有不同的形状:TextMessage、ObjectMessage、MapMessage、BytesMessage和StreamMessage。 好的,根据我的理解,JMS核心组件的目的地组件定义了接收消
本文向大家介绍聊聊JavaScript如何实现继承及特点,包括了聊聊JavaScript如何实现继承及特点的使用技巧和注意事项,需要的朋友参考一下 “继承”是面向对象编程里面经常提及到的概念,它的目的是实现代码复用。JavaScript并没有“类”的概念,那么,它如何实现继承呢? (ES6有关键字class和extend,继承的语法与Java等面向对象语言类似,但是,ES6 class,只是Jav
P2P 网络 比特币网络使用简单的方法来执行对等节点的发现和节点间的通信。以下章节适用于全节点和SPV客户端,不同的是SPV通过布鲁姆过滤器(Bloom filters )执行块的发现。 对等节点发现 比特币的核心部分维护一个在启动时可以连接的对等节点列表。当一个完整的节点第一次启动时,它必须被自举(bootstrapped)到网络。这个过程如今在比特币的核心部分通过一个短名单上的DNS种子自动执