我希望配置一个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;
}
在应用程序服务器上运行时,您可以通过指定&#34;初始上下文来设置JNDI上下文URL以从外部连接(在我们的示例中为源JMS服务器)中提取配置值(超时/等)工厂&#34;在JNDI连接上。我如何从不在应用程序服务器上运行的Spring启动应用程序中执行等效操作?
答案 0 :(得分:0)
您的tibJmsConnectionFactory()未从服务器返回连接工厂。你只是用一些属性来实例化它。你要做上下文查找。
Context ctx = new InitialContext(env);
TibjmsConnectionFactory connectionFactory = (TibjmsConnectionFactory) ctx.lookup("factoryName");