簡體   English   中英

MissingResourceException:找不到基本名稱的捆綁

[英]MissingResourceException: Can't find bundle for base name

我知道在stackoverflow和其他論壇上有很多有關此錯誤的問題和解答。 但是我仍然找不到解決方案...

我的代碼:

package com.sodifrance.apex.presentation.generic.utils;

import java.util.ResourceBundle;

public class EnumTranslator {

    private static EnumTranslator instance = null;

    private EnumTranslator() {
    }

    public static EnumTranslator getDefaut() {
        if (instance == null)
        {
            instance = new EnumTranslator();
        }
        return instance;
    }

    public String translate(Enum<?> enumerationValue) {
        String localizedMessage = "";

        if (enumerationValue != null)
        {
            ResourceBundle b = ResourceBundle.getBundle("resources.enumerations");

            localizedMessage = enumerationValue.name();

            if (b != null)
            {
                localizedMessage = b.getString(enumerationValue.getDeclaringClass().getName() + "." + enumerationValue.name());
            }
        }

        return localizedMessage;
    }
}

Tomcat控制台:

java.util.MissingResourceException:在java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1564)處找不到基本名稱資源包,枚舉,語言環境fr_FR在java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1387)在java.util.ResourceBundle.getBundle(ResourceBundle.java:773)在com.presentation.generic.utils.EnumTranslator.translate(EnumTranslator.java:25)在com.presentation.entry.societe.EntryChoixTypeSocieteAction.execute(EntryChoixTypeSocieteAction.java :53),位於com.presentation.generic.back上的org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228),位於com.presentation.generic.back.BackRequestProcessor.processActionPerform(BackRequestProcessor.java:118)。 org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)上的BackRequestProcessor.process(BackRequestProcessor.java:63) .servlet.http.HttpServlet.service(HttpServlet.java:622)一個 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)處的org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain)的javax.servlet.http.HttpServlet.service(HttpServlet.java:729) .java:206),位於org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239),位於org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239),位於org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)。在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:com.presentation.generic.security.EncodingFilter.doFilter(EncodingFilter.java:121)處的catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 239),位於org.apache.catalina.core.ApplicationFilterChain的com.presentation.generic.security.ApplicationFilter.doFilter(ApplicationFilter.java:72)的org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) .internalDoFilter(ApplicationFilterChain.java:239)在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)處的org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)在org.apache.catalina.core.StandardContextValve.invoke( org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)處的org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)處的StandardContextValve.java:106) org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)上的.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)在org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) ),位於org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1096)的org.apache.catalina.connector.CoyoteAdapter.java(521)上.org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler。 org.apache.tomcat.util.net.NioEn上的進程(AbstractProtocol.java:674) org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor.run(NioEndpoint.java:1456)處的dpoint $ SocketProcessor.doRun(NioEndpoint.java:1500)在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java: 1142)在org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run(TaskThread.java:61)在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:617) .run(Thread.java:745)

當我在調試模式下檢查此行時:

ResourceBundle b = ResourceBundle.getBundle("resources.enumerations");

我收到此消息:

未為類型Enum Translator定義方法getBundle(String)

我的文件配置: 在此處輸入圖片說明

Resource.getBundle以FQCN作為參數。 在語句ResourceBundle.getBundle("resources.enumerations") ,JRE正在查找文件resources / enumerations <_local> .properties。

在您的示例中,您應該使用getBundle("com.sod.ap.properties.enumerations")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM