![](/img/trans.png)
[英]Publish messages using Java WebSocket client to Apache Apollo topic
[英]How to publish messages to EMS Topic using Java
我想向EMS主题发布一条测试消息,可以使用一些方向。 到目前为止,我已设法做到这一点
import com.tibco.tibjms.TibjmsConnectionFactory;
import com.tibco.tibjms.TibjmsTopicConnectionFactory;
public class Connect {
public static void main(String[] args) {
String url = "tcp://host:6600";
TibjmsConnectionFactory cf = new TibjmsTopicConnectionFactory(url);
cf.setUserName("user1");
cf.setUserPassword("");
System.out.println(cf);
}
}
产生以下。 如何向主题“topic1”或队列“Q1”发布消息
TopicConnectionFactory[URL=tcp://localhost:6600;clientID=null;Properties={com.tibco.tibjms.factory.password=, com.tibco.tibjms.factory.username=user1}]
我通过修改EMS 8.0“sample”文件夹中的“tibjmsMsgProducer.java”创建了以下代码。 查看此文件夹中的所有Java示例以获取进一步的参考。
此代码使用默认用户和密码将简单的硬编码文本消息发布到本地EMS。 目标主题是“topic1”(在最后一行)。
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;
public class tibjmsMsgTopicProducer {
static String serverUrl = "localhost";
static String userName = "admin";
static String password = "admin";
public static void sendTopicMessage(String topicName, String messageStr) {
Connection connection = null;
Session session = null;
MessageProducer msgProducer = null;
Destination destination = null;
try {
TextMessage msg;
System.out.println("Publishing to destination '" + topicName
+ "'\n");
ConnectionFactory factory = new com.tibco.tibjms.TibjmsConnectionFactory(
serverUrl);
connection = factory.createConnection(userName, password);
/* create the session */
session = connection
.createSession(javax.jms.Session.AUTO_ACKNOWLEDGE);
/* create the destination */
destination = session.createTopic(topicName);
/* create the producer */
msgProducer = session.createProducer(null);
/* publish messages */
/* create text message */
msg = session.createTextMessage();
/* set message text */
msg.setText(messageStr);
/* publish message */
msgProducer.send(destination, msg);
System.out.println("Published message: " + messageStr);
/* close the connection */
connection.close();
} catch (JMSException e) {
e.printStackTrace();
}
}
/*-----------------------------------------------------------------------
* main
*----------------------------------------------------------------------*/
public static void main(String[] args) {
tibjmsMsgTopicProducer.sendTopicMessage("topic1",
"This is the message content !");
}
}
注意:您可能还希望将EMS与Spring-JMS结合使用,以获得更“企业级”的解决方案。 上面的代码更简单。
注2:我把方法设为“静态”。 这仅用于演示目的。 JMS中的连接成本很高,因此通常我们会尝试重用它们。 有关更好地设置Java类的信息,请参阅所有TIBCO提供的示例。 如果可以,实例化并重用连接。 此外,J2EE或Spring解决方案将支持内置的连接池。
我有一段时间没有触及EMS - 但基本上EMS只不过是一个JMS实现。 所有特定于实现的内容都已隐藏。 您只需使用标准的JMS方式来发布/发布主题,您可以在Java教程和在线资源中找到很好的示例。 我会在这里保存我丑陋的示例代码:-)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.