2017-07-24 75 views
0

我正在尋找配置Spring引導應用程序來執行連接的JNDI查找(配置initialContext)。這是作爲獨立的Spring啓動應用程序運行的(不在應用程序服務器上)。我有工作正常以下,雖然我提供了所有的配置值自己(不設置超時的/ etc這裏,但通常會):春季啓動jms initialcontext

@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連接上指定一個「初始上下文工廠」來從外部連接(在本例中爲源JMS服務器)提取配置值(超時/ etc)。如何從Spring應用服務器上運行的Spring啓動應用程序執行相同的操作?

回答

0

您的tibJmsConnectionFactory()未從服務器返回連接工廠。你只是用一些屬性來實例化它。你必須做上下文查找。

Context ctx = new InitialContext(env);  

    TibjmsConnectionFactory connectionFactory = (TibjmsConnectionFactory) ctx.lookup("factoryName");