java - 如何在java中的spring可重新加载消息资源中使用远程位置属性文件

标签 java spring tomcat spring-mvc

我有一个分布式系统,上面有 8 个运行 tomcat 的应用服务器。这是一个 Spring 应用程序。我想使用一个位于其他服务器上的属性文件,所有 tomcat 只会从那里读取它。 我正在使用 ReloadableResourceBundleMessageSource 来使用自动刷新功能。 我的 bean 定义是

<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">  
          <property name="basenames" >
            <list>
                <value>file:///192.168.1.10//var/rateLimit</value> 
             </list>
        </property>
        <property name="cacheSeconds" value="60"></property>  
</bean>  

我这样调用属性

System.out.println(messageSource.getMessage("testProp", null, null));

我无法使用此 IP 地址加载文件。

你能帮我解决这个问题吗?

最佳答案

这是我用来通过 HTTP 读取外部属性文件的方法:

<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
    <property name="basenames" value="/WEB-INF/messages,http://our.server.org/ws/i18n"/>
    <property name="cacheSeconds" value="300"/>
    <property name="useCodeAsDefaultMessage" value="true"/>
</bean>

也许将文件 URI 包含在 value 引号字符串中可能会有帮助?

关于java - 如何在java中的spring可重新加载消息资源中使用远程位置属性文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22604503/

相关文章:

java - 通过构造函数将上下文从主 Activity 传递到 Java 类时获取 "this field leaks a context object"

java - 如何使用 Java 在 Selenium2 (Webdriver) 中输入 Gmail 正文

java - Java 中迭代器变量前面的括号是什么?

java - Maven:仅在特定的 git 分支上运行任务

java - 二级缓存 : Spring 3. 2.2 + Hibernate 4.2.0 Infinispan

java - 阻止 Tomcat 执行 ISO-8859-1

java - RedisTemplate execute() 和 opsFpr*() 的不同使用

java - 如何在单元测试中设置Spring注入(inject)的值?

tomcat - support.PluginAwareResourceBundleMessageSource 无法解析插件的任何资源

java - 无法访问使用本地 ip 创建的 cookie