Java jndi查找DefaultFtpSessionFactory
我在.properties文件中有ftp连接属性,下面是Springbean的代码Java jndi查找DefaultFtpSessionFactory,java,spring,tomcat,jndi,spring-integration,Java,Spring,Tomcat,Jndi,Spring Integration,我在.properties文件中有ftp连接属性,下面是Springbean的代码 <bean id="ftpConnectionFactory" class="org.springframework.integration.ftp.session.DefaultFtpSessionFactory"> <property name="host" value="${ftp.host}"/> <property name="port" v
<bean id="ftpConnectionFactory" class="org.springframework.integration.ftp.session.DefaultFtpSessionFactory">
<property name="host" value="${ftp.host}"/>
<property name="port" value="${ftp.port}"/>
<property name="username" value="${ftp.username}"/>
<property name="password" value="${ftp.password}"/>
</bean>
使用web应用程序内的属性文件和占位符配置,上述方法确实有效。但我想要的是将这些属性保存在服务器中,比如tomcat context.xml文件
我有使用这个工厂的spring集成
<int-ftp:outbound-channel-adapter id="ftpOutbound"
channel="ftpChannel"
remote-directory="${ftp.remoteDir}"
remote-file-separator="\"
session-factory="ftpConnectionFactory"
/>
是否有一种方法可以在服务器中外部化这些属性,并使用jndi进行查找。对于datasource,我目前正在这样做。但我不知道如何为会话工厂做这件事。我想这样做的原因是隐藏密码和其他详细信息 您可以使用PropertyPlaceHolderConfiguration,如下所示
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>classpath:external.properties</value>
</property>
</bean>
类路径:external.properties
请参阅和的更多示例。如果Tomcat可以从
context.xml
将对象正确绑定到JNDI,那么从JNDI查找访问该对象与对数据源的访问没有区别
请展示您如何为Spring中的DataSource
执行此操作,以及如何配置ftpConnectionFactory
,我将尽力帮助您。是的,现在我正在使用属性文件。上述方法确实有效。我想从web应用程序中删除属性文件,并将它们添加到server context.xml中,就像我们对datasourceI所做的那样,我在spring配置中使用了
,而资源位于上下文文件中。我也可以对这个ftp会话工厂做同样的事情,对吗?没错!JNDI与您绑定并想要获取的对象没有区别。如果您的Tomcat是为您做的,那么您可以使用JndiObjectFactoryBean
从JNDI获取所需的对象