Tag: resourcebundle

Javaunit testing无法访问ResourceBundle

我正在创建一个Javaunit testing来测试我最近更改的一些代码。 但是,我正在测试的方法实例化一个使用ResourceBundle的类… ResourceBundle.getBundle(“businessVariables”).getString(“product.name”)); 资源文件位于Mycompany_web/src/main/webapp/WEB-INF/classes/businessVariables.properties的Web包中 我的测试存在于Mycompany_xml/src/test/java/uk/co/mycompany/xmlapi/RequestProcessorTestNew.java xml包中 在正常运行时,资源包可以访问,但不能在我的unit testing运行时访问。 它抛出了这个错误…… Testcase: testCreateInitialStatusResponse(uk.co.mycompany.xmlapi.RequestProcessorTestNew): Caused an ERROR null java.lang.reflect.InvocationTargetException at uk.co.mycompany.xmlapi.RequestProcessorTestNew.testCreateInitialStatusResponse(RequestProcessorTestNew.java:62) Caused by: java.lang.ExceptionInInitializerError at uk.co.mycompany.xmlapi.RequestProcessorImpl.createInitialStatusResponse(RequestProcessorImpl.java:812) Caused by: java.util.MissingResourceException: Can’t find bundle for base name businessVariables, locale en_US 我该怎么办? 我可以启用测试以某种方式查看资源包吗? 我可以在某处以某种方式创建一个模拟资源文件,代码将能够看到吗?

重新加载使用setBundle加载的属性文件

我希望在Spring中涉及属性文件的问题有一点帮助。 所以我的设置是这样的: opto-mapping.properties – 它位于我的src文件夹中,包含我优化资源的翻译,如下所示: generic-min.css=4037119659.css 每次运行构建“优化”时,都会更新此属性文件。 然后我用 在我想要的jsp中导入我的属性文件。 然后使用以下内容引用内容: 这一切都很好用,除了属性文件需要重新加载tomcat重启。 我不希望每次更新资源时都要开始关闭网站。 我希望属性文件每隔一段时间自动重新加载一次。 我确实尝试更新spring-context.xml中的现有bean来重新加载这个属性文件,就像我对翻译一样,但这没有用 – 很可能是因为opto-mapping.properties文件的位置 – 但你看到它需要使用fmt:setBundle加载到该位置。 1 WEB-INF/translations/translations WEB-INF/classes/opto-mapping 在这个困难时期,任何帮助或正确方向的观点都将受到极大的赞赏。 我希望所有这一切都能提前做好准备,并提前多多感谢! G。

将resourcebundle读为UTF-8。 getString()方法似乎将编码更改为ISO-8859

我有幸将完整的工作区,项目和文件的编码更改为UTF-8编码。 我们有几个Resourcebundles,用于使用unicode编写特殊字符。 我们还希望通过切换到UTF-8来摆脱那些unicode的东西,所以我也改变了Resourcebundles(.properties)文件的编码并替换了Unicode字符。 我们还有德国资源捆绑和一些像 Ä,Ö,Ü,ß。 ä,ö,ü以及像“或”这样的特殊字符 在浏览器中未正确显示。 例: Resourcebundleentry: executeShellCommand.label =Shellkommandoausführen 结果在浏览器中: 使用Java.util.ResourceBundle.getString(String key)方法读取resourcebundle: public String getLocalizedString(ResourceBundle bundle, String key) { try { System.out.println(“getLocalizedString, key: ” + key + “, resourcebundle: ” + bundle.getString(key)); return bundle.getString(key); } catch (MissingResourceException e) { return key; } } 如果我检查上面的Sysout的输出我得到以下: getLocalizedString, key: executeShellCommand.label, resourcebundle: Shellkommando ausführen 似乎getString(key)方法在将字符串从字符串读取到标准resourcbundleencoding(ISO-8859)时更改字符的编码 。 我试图解决这个问题: […]

java.util.MissingResourceException

我在运行应用程序时遇到exception。 这个应用程序读取了abc.properties文件, 线程“main”中的exceptionjava.util.MissingResourceException:无法在java.util.ResourceBundle.getBundleImpl(ResourceBundle。)的java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:853)中找到基本名称abc,locale en_US的包。 java:822)at java.util.ResourceBundle.getBundle(ResourceBundle.java:566)at com.ibm.dst.DailyExtract.getResourceBundle(DailyExtract.java:104)at com.ibm.dst.DailyExtract.main(DailyExtract.java) :131) abc.properties文件驻留在工作区中。 我使用RSA7作为IDE,有任何设置问题吗? 欢迎任何建议….. 非常感谢提前

在Java中,我如何找到我的Resource Bundle可用的语言

我在主jar中打包了一些资源包 widget_en.properties widget_de.properties 我根据我的默认语言环境检索资源包作为folows ResourceBundle.getBundle(“widget”, Locale.getDefault()); 但我想向用户提供支持的可用语言列表,以便选择可能与其计算机默认的语言不同的语言 但我在ResourceBundle中找不到列出可用语言环境的方法,我不想对列表进行硬编码,因为我可能忘记在添加另一个资源包时更新它。 编辑 由于我只使用不同语言的资源包(我没有国家改进)所以我通过迭代所有已知的语言代码生成了一个列表,并检查每一个作为资源。 String[]langs = Locale.getISOLanguages(); for(String lang:langs) { URL rb = ClassLoader.getSystemResource(“widget_”+lang+”.properties”); if(rb!=null) { System.out.println(“Found:”+rb.toString()); } }

如何使用ResourceBundle

我正在尝试掌握java应用程序的内部化,如下所示。 我不能。 我创建了一个扩展ListResourceBundle的类,并尝试检索键。 我不断得到例外。 如果您查看教程,它会说使用.class文件。 这不可能是对的,可以吗? [项目树] [源代码] 以下是我正在使用的两个类,只是MainWindow_xx_XX.java文件中的一个,因为它们基本相同。 首先是ListResourceBundle: public class MainWindow_en_US extends ListResourceBundle { @Override protected Object[][] getContents() { return contents; } private Object[][] contents = { {“fileLabel”, “File”}, {“newSessionLabel”, “New session…”}, {“openSessionLabel”, “Open session…”}, {“saveLabel”, “Save”}, {“exitLabel”, “Exit”}, {“editLabel”, “Edit”}, {“toolsLabel”, “Tools”}, {“helpLabel”, “Help”} }; } 现在我用它加载它的方法: private static final int DEFAULT_LOCALE […]

如何使用JSTL标记检查资源包密钥是否不存在?

我有一个资源文件,将有一些可选键。 如果不存在可选资源键,我会设置默认值。 似乎没有简单的方法来确定资源包中是否存在密钥。 所以这就是我正在做的事情。 有没有更好的办法?

使用ReloadableResourceBundleMessageSource在类路径上动态加载文件

我是Spring的新手,我正在尝试使用它的ReloadableResourceBundleMessageSource类。 我正在尝试使用它,以便我们不再需要重新启动我们的Web应用程序以进行属性文件更改/更新。 我有一个Web应用程序(主要使用JSF)和一个单独的tar组件,其中包含我的所有属性文件。 属性tar的结构如下: – CompanyOneMessages.properties – CompanyOneMessages_fr_FR.properties – CompanyTwoMessages.properties – CompanyTwoMessages_fr_FR.properties – CompanyThreeMessages.properties – CompanyThreeMessages_fr_FR.properties – … 此tar解压缩并部署到服务器上的某个位置,该位置指定为在websphere配置中的类路径上。 我在applicationContext-config.xml中添加了以下内容: classpath:com/resource/dynamic/CompanyOneMessages classpath:com/resource/dynamic/CompanyTwoMessages classpath:com/resource/dynamic/CompanyThreeMessages 一切正常。 但是,它没有完全解决原始问题。 每当我想在我们的应用程序中添加新公司时,我都必须在applicationContext-config.xml文件中添加一个新行并重新部署/重新启动Web应用程序。 我希望能够简单地将新公司属性文件放入属性tar中,并将其动态选取。 是否可以扩展ReloadableResourceBundleMessageSource类,以便在应用程序启动时搜索类路径以查找属性文件并动态加载所有这些类? 更新 这是我到目前为止: 的applicationContext-config.xml文件: MyAPPReloadableResourceBundleMessageSource: package com.myapp.resource; import org.springframework.context.support.ReloadableResourceBundleMessageSource; public class MyAPPReloadableResourceBundleMessageSource extends ReloadableResourceBundleMessageSource { public MyAPPReloadableResourceBundleMessageSource() { getResourceBundlesMessages(); // Simply single basename test setBasename(“classpath:/resource/dynamic/companyOneMessages”); } @Override public […]

列出所有可用的ResourceBundle文件

我正在使用ResourceBundle,我想给用户一个选择GUI语言的选项。 我想获得特定包下的所有资源文件的列表。 我不知道我将拥有哪些资源,因为此应用程序基于插件。 是否可以选择从java中搜索包下的所有可用资源? (如果不,我猜插件应该为它提供所有可用的本地) 谢谢你们

是否可以在资源包中包含资源包文件

我们使用java.util.ResourceBundle来加载属性信息。 我们的属性文件已经变得如此庞大,我们正在考虑将主属性文件分成几个子模块。 是否有可能实现这一目标? master.properties ==> master.properties include moduleA.properties include moduleB.properties 让我知道?