我需要编写一个简单的 java 类,将消息发送到 Sonic 主题。我可以使用 JNDI 值进行查找。这是代码。
Hashtable<String, String> properties = new Hashtable<>();
properties.put(Context.INITIAL_CONTEXT_FACTORY, "com.sonicsw.jndi.mfcontext.MFContextFactory");
properties.put(Context.PROVIDER_URL, "tcp://Devserver:7002");
properties.put(Context.SECURITY_PRINCIPAL, "username");
properties.put(Context.SECURITY_CREDENTIALS, "password");
properties.put("com.sonicsw.jndi.mfcontext.domain", "dmDEV");
Context jndiContext = new InitialContext(properties);
ConnectionFactory connectionFactory = (ConnectionFactory) jndiContext.lookup("TopicConnectionFactory");
Topic topic = (Topic) jndiContext.lookup("testtopic");
这会引发错误 javax.naming.NameNotFoundException: /testtopic not found in the specified context
当我调试代码时,我可以看到“connectionFactory”变量具有以下字段和值,这些字段和值与我在上面在属性中指定的值完全不同。
brokerHostName "MyMachine" (id=55)
brokerPort 0
brokerProtocol "tcp" (id=59)
brokerURL "" (id=66)
clientID null
connectID null
defaultPassword "" (id=67)
defaultUserName "Administrator" (id=68)
我需要知道如何编写一个简单的 Java 客户端来连接到 Sonic 主题。