要检查这一点,我尝试以下
一)创建WMQ绑定文件使用JMSAdmin的。一旦我创建了一个QCF和队列,我就可以通过JMS查找发送消息并发送消息。
b)对于设置以产生.bindings文件AMQ,IBM有一些示例代码来generate the bindings file.
一旦这样做是我恰好使用的相同的代码来发送消息和消息被完全发送到AMQ和WMQ
以下是我能够互操作的示例代码。
public void sendMessages() {
ConnectionFactory connectionFactory;
Connection con = null;
Session session = null;
MessageProducer producer = null;
//create initial context properties
Properties initialContextProperties = new Properties();
initialContextProperties.put("java.naming.factory.initial", "com.sun.jndi.fscontext.RefFSContextFactory");
initialContextProperties.put(Context.PROVIDER_URL, "file:/C:/JNDI-Directory/AMQ");
initialContextProperties.setProperty("transport.jms.security.authentication", "none");
try {
InitialContext initialContext = new InitialContext(initialContextProperties);
//create connection factory object
//ivtQCF - created connection factory object in IBM-MQ
connectionFactory = (ConnectionFactory) initialContext.lookup("confact2");
con = connectionFactory.createConnection();
con.start();
session = con.createSession(false, Session.AUTO_ACKNOWLEDGE);
//localq - created queue in IBM-MQ
Destination destination = (Destination) initialContext.lookup("dest");
producer = session.createProducer(destination);
String msg = "SAMPLE MESSAGE PLACED TO QUEUE";
TextMessage textMessage = session.createTextMessage(msg);
producer.send(textMessage);
con.close();
session.close();
producer.close();
} catch (NamingException e) {
throw new RuntimeException("Unable to send jms messages", e);
} catch (JMSException e) {
throw new RuntimeException("Unable to send jms messages", e);
}
}
我是,我不是一个java程序员,我不知道java生态系统。 1.据说在那里,fscontext.jar和providerutil.jar是JNDI查找所必需的。我可以在哪里找到它们? – kseniyam
您可以从Maven回购站下载它们,例如:https://mvnrepository.com/artifact/com.sun.jndi/fscontext/1.2-beta-3有一个Download JAR选项。与providerutil一样 –
2.据说从activemq服务器复制绑定文件?但发行版中没有任何绑定文件。或者是ActiveMQBindingsCreation.java用于生成绑定文件? (其中的代码似乎没有这样做)。如果你有帮助澄清,将非常感激。 – kseniyam