如果只是您的 JNDI 类需要 Java 5 而不是 JBoss 类,那么您可以这样做。但是您必须设置对象的所有属性,这是特定于提供者的。WebSphere MQ JMS 示例展示了如何使用 WMQ 执行此操作,您需要知道 JBoss 的属性和值名称才能生成等效代码。以下是 WMQ JmsProducer.java 示例的代码片段:
JmsFactoryFactory ff = JmsFactoryFactory.getInstance(WMQConstants.WMQ_PROVIDER);
JmsConnectionFactory cf = ff.createConnectionFactory();
// Set the properties
cf.setStringProperty(WMQConstants.WMQ_HOST_NAME, host);
cf.setIntProperty(WMQConstants.WMQ_PORT, port);
cf.setStringProperty(WMQConstants.WMQ_CHANNEL, channel);
cf.setIntProperty(WMQConstants.WMQ_CONNECTION_MODE, WMQConstants.WMQ_CM_CLIENT);
cf.setStringProperty(WMQConstants.WMQ_QUEUE_MANAGER, queueManagerName);
// Create JMS objects
connection = cf.createConnection();
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
if (isTopic) {
destination = session.createTopic(destinationName);
}
else {
destination = session.createQueue(destinationName);
}
producer = session.createProducer(destination);
另一方面,如果您的 JBoss 类 prereq Java 1.5,那么您需要运行 Java 1.5 或更高版本。