简体   繁体   中英

MissingResourceException: Can't find bundle for base name

I know that there are a lot of questions and answers exactly about this error on stackoverflow and other forums. But I still can not find the solution...

My code:

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 Console:

java.util.MissingResourceException: Can't find bundle for base name resources.enumerations, locale fr_FR at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1564) at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1387) at java.util.ResourceBundle.getBundle(ResourceBundle.java:773) at com.presentation.generic.utils.EnumTranslator.translate(EnumTranslator.java:25) at com.presentation.entry.societe.EntryChoixTypeSocieteAction.execute(EntryChoixTypeSocieteAction.java:53) at com.presentation.generic.back.BackRequestProcessor.processActionPerform(BackRequestProcessor.java:118) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228) at com.presentation.generic.back.BackRequestProcessor.process(BackRequestProcessor.java:63) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449) at javax.servlet.http.HttpServlet.service(HttpServlet.java:622) a t javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at com.presentation.generic.security.EncodingFilter.doFilter(EncodingFilter.java:121) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at com.presentation.generic.security.ApplicationFilter.doFilter(ApplicationFilter.java:72) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:521) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1096) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:674) at org.apache.tomcat.util.net.NioEn dpoint$SocketProcessor.doRun(NioEndpoint.java:1500) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745)

when i inspect this line in debbug mode:

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

I have this message:

The method getBundle(String) is undefined for the type Enum Translator

My file config: 在此处输入图片说明

Resource.getBundle take a FQCN as a parameters. In the statement ResourceBundle.getBundle("resources.enumerations") , the JRE are looking for the files resources/enumerations<_local>.properties

In your example, you should use getBundle("com.sod.ap.properties.enumerations")

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM