spring boot jms initialcontext



我希望配置一个 Spring 引导应用程序来执行连接的 JNDI 查找(配置 initialContext(。它作为独立的 Spring 引导应用程序运行(不在应用程序服务器上(。我有以下工作正常,尽管我自己提供了所有配置值(不在此处设置超时/等,但通常会设置(:

@Bean
public ConnectionFactory tibJmsConnectionFactory() throws JMSException {
TibjmsConnectionFactory myFac = new TibjmsConnectionFactory();
myFac.setServerUrl("tcp://xxxxx:7222");
myFac.setUserName("xxxxxxx");
myFac.setUserPassword("xxxxxx");
return myFac;
}
@Bean
public JmsListenerContainerFactory<?> myFactory(ConnectionFactory connectionFactory,
DefaultJmsListenerContainerFactoryConfigurer configurer) {
DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
configurer.configure(factory, connectionFactory);
return factory;
}

在应用程序服务器上运行时,通过在 JNDI 连接上指定"初始上下文工厂",可以设置 JNDI 上下文 URL,以从外部连接(在本例中为源 JMS 服务器(中提取配置值(超时/等(。如何从未在应用程序服务器上运行的 Spring 引导应用程序中执行等效操作?

你的tibJmsConnectionFactory((没有从服务器返回连接工厂。你只是用一些属性实例化它。您必须进行上下文查找。

Context ctx = new InitialContext(env);      
TibjmsConnectionFactory connectionFactory = (TibjmsConnectionFactory) ctx.lookup("factoryName");

最新更新