- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用可重新加载的 spring 资源包,但 spring 找不到该文件。我尝试了很多不同的路径,但无法让它在任何地方工作。在下面的代码中,您将看到我从同一路径变量加载了 spring 包和常规包,但只有一个有效。
我已经为此苦苦挣扎太久了。大家有什么想法吗?
日志文件
INFO 2010-04-28 11:38:31,805 [main] org.myorg.test.TestMessages: C:\www\htdocs\messages.properties
INFO 2010-04-28 11:38:31,805 [main] org.myorg.data.Messages: initializing Spring Message Source to C:\www\htdocs\messages.properties
INFO 2010-04-28 11:38:31,821 [main] org.myorg.data.Messages: Attempting to load properties from C:\www\htdocs\messages.properties
DEBUG 2010-04-28 11:38:31,836 [main] org.springframework.context.support.ReloadableResourceBundleMessageSource: No properties file found for [C:\www\htdocs\messages.properties_en_US] - neither plain properties nor XML
DEBUG 2010-04-28 11:38:31,842 [main] org.springframework.context.support.ReloadableResourceBundleMessageSource: No properties file found for [C:\www\htdocs\messages.properties_en] - neither plain properties nor XML
DEBUG 2010-04-28 11:38:31,848 [main] org.springframework.context.support.ReloadableResourceBundleMessageSource: No properties file found for [C:\www\htdocs\messages.properties] - neither plain properties nor XML
INFO 2010-04-28 11:38:31,848 [main] org.myorg.test.TestMessages: I am C:\www\htdocs\messages.properties
消息.java
package org.myorg.data;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.PropertyResourceBundle;
import java.util.ResourceBundle;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.context.support.ReloadableResourceBundleMessageSource;
public class Messages {
protected static final Log logger = LogFactory.getLog(Messages.class);
private static ReloadableResourceBundleMessageSource msgSource = null;
private static ResourceBundle RESOURCE_BUNDLE;
public static final String PATH = "C:" + File.separator + "www"
+ File.separator + "htdocs" + File.separator + "messages.properties";
private Messages() {
}
public static String getString(String key) {
initBundle();
return msgSource.getMessage(key, null,
RESOURCE_BUNDLE.getString(key), null);
}
private static void initBundle(){
if(null == msgSource || null == RESOURCE_BUNDLE){
logger.info("initializing Spring Message Source to " + PATH);
msgSource = new ReloadableResourceBundleMessageSource();
msgSource.setBasename(PATH);
msgSource.setCacheSeconds(1);
FileInputStream fis = null;
try {
logger.info("Attempting to load properties from " + PATH);
fis = new FileInputStream(PATH);
RESOURCE_BUNDLE = new PropertyResourceBundle(fis);
} catch (Exception e) {
logger.info("couldn't find " + PATH);
} finally {
try {
if(null != fis)
fis.close();
} catch (IOException e) {
}
}
}
}
}
TestMessages.java
package org.myorg.test;
import org.myorg.data.Messages;
public class TestMessages extends AbstractTest {
public void testMessage(){
logger.info(Messages.PATH);
logger.info(Messages.getString("OpenKey.TEST"));
}
}
最佳答案
仅供记录,您可以尝试这种方法:
说明:Spring 可重新加载消息包不使用类路径,因为它由应用程序服务器缓存。您可以通过 classpath:your.properies 来规避此问题,但您也可以使用不可重新加载的版本,该版本的速度要快一些。换句话说,技巧是使用不被缓存的 webApp 目录。您可以将文件放在 yourProject/web 下或下面的任何位置,只要您让加载程序知道即可。
将其放入 webapp-config.xml
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basename" value="message"/>
<property name="cacheSeconds" value="1"/>
</bean>
这是你的 bean:
public class YouBeanWithMsgReloadableResourceBundle {
public void yourMethod(){
String msg = ms.getMessage("your.memo.nic", null, "your default message", Locale.CANADA);
}
@Autowired MessageSource ms;}
由于 JSF2 确实很酷,您可能想在 faces 上下文中使用它:
public void validate(FacesContext context, UIComponent component, Object value)
throws ValidatorException {
MessageSource ms = FacesContextUtils.getWebApplicationContext(context).getBean(MessageSource.class);
String msg = ms.getMessage("your.memo.nic", null, "your default message", Locale.CANADA);
}
关于java - 找不到属性文件 ReloadableResourceBundleMessageSource 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2732280/
Spring mvc 新手,我尝试使用属性文件中的“ReloadableResourceBundleMessageSource”显示自定义错误消息,但仍然无法获取自定义消息,我得到的是 spring
经过一些测试,看起来ReloadableResourceBundleMessageSource不支持通配符。 假设捆绑文件位于资源中,并具有以下名称:messages.properties、messa
我在WEB-INF/i18n目录下有两个文件: application.properties 消息.properties 我已经正确配置了我的 ReloadableResourceBundleMess
在我的应用程序中,我已经使用了 ResourceBundleMessageSource 一切正常,但目前我想为我的应用程序使用 UTF-8 编码,并将 ResourceBundleMessageSo
我正在尝试使用可重新加载的 spring 资源包,但 spring 找不到该文件。我尝试了很多不同的路径,但无法让它在任何地方工作。在下面的代码中,您将看到我从同一路径变量加载了 spring 包和常
我正在使用 i18n 开发一个应用程序,该应用程序在我的开发环境(Windows)中运行良好,但是,当我尝试在 Linux 中部署时,一切似乎都正常,直到我发出请求并收到消息 No message f
我是 Spring 的新手,正在尝试使用它的 ReloadableResourceBundleMessageSource 类。 我正在尝试使用它,以便我们不再需要为属性文件更改/更新重新启动我们的网络
为了以编程方式刷新资源包缓存,我使用了 Spring 的 ReloadableResourceBundleMessageSource。我无法将它注入(inject)到我想要调用 clearCache(
我在我的Web项目中使用ReloadableResourceBundleMessageSource,并将类注入(inject)到servlet中,问题是我想使用Spring注释注入(inject)类,
在 Google 上搜索如何在 Spring 3 中配置属性文件,我得到了许多不同的答案。我发现 ReloadableResourceBundleMessageSource和 PropertyPlac
我正在学习 Spring 。我尝试使用 ResourceBundleMessageSource,这是我尝试过的示例。 主应用 public class MainApp { public sta
我有这个简单的测试,它甚至不是测试,因为我只是想模拟消息源。 我收到这个错误: org.springframework.context.NoSuchMessageException: No messa
我正在使用 ReloadableResourceBundleMessageSource 来存储我系统的值列表。所以我可以使用 i18N 功能 我在 ReloadableResourceBundleMe
您好,我正在尝试在我的 Spring MVC Web 应用程序中配置消息源。 我目前已经让它与 ReloadableResourceBundleMessageSource 一起运行,但我无法让它与 R
为什么 Spring “ReloadableResourceBundleMessageSource”在 Locale.getDefault() 返回 en 时无法找到与代码关联的正确消息,但在返回 e
我定义了以下 Spring bean: classpath:messages Controller : @Contr
我在文档中找不到这个: 假设我有一个 ReloadableResourceBundleMessageSource,如果我使用另一个进程为刚刚添加到属性文件中的属性调用 getMessage() ,这会
我正在我的 Spring Web 应用程序中启用消息国际化。为此,我的 servlet.xml 中有以下代码 添加上面的代码后,只要我在浏览器中点击我的
我是一名优秀的程序员,十分优秀!