Resource Bundles laden

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Resource Bundles laden

    hallo!

    da ich meine applikation mehr-sprachig gestalten möchte, verwende ich resource bundles, in denen die fehlermeldungen gespeichert werden.
    das deutsche bundle heißt "errorMsgs_de.properties".

    mit folgendem code versuche ich es zu laden:

    Code:

    Locale locale = new Locale(session.getAttribute("language").toString());
    ResourceBundle bundle = ResourceBundle.getBundle("errorMsgs",locale);



    wobei im Attribut 'language' die eingestellte sprache abgelegt ist.

    wenn ich aber die anwendung starte, kommt folgende fehlermeldung:




    type Exception report

    message

    description The server encountered an internal error () that prevented it from fulfilling this request.

    exception

    org.apache.jasper.JasperException: Exception in JSP: /handleContact.jsp:23

    20: boolean commit = true;
    21:
    22: Locale locale = new Locale(session.getAttribute("language").toString());
    23: ResourceBundle bundle = ResourceBundle.getBundle("errorMsgs",locale);
    24:
    25: if(request.getAttribute("Name") != null)
    26: lastname = request.getAttribute("Name").toString();


    Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:504)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

    root cause

    java.util.MissingResourceException: Can't find bundle for base name errorMsgs, locale de
    java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:836)
    java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:726)
    java.util.ResourceBundle.getBundle(ResourceBundle.java:576)
    org.apache.jsp.handleContact_jsp._jspService(org.apache.jsp.handleContact_jsp:82)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

    note The full stack trace of the root cause is available in the Apache Tomcat/5.5.15 logs.


    d. h. die anwendung kann die bundle datei nicht finden, oder? ich habe schon versucht, die bundle datei direkt unter WEB-INF oder in WEB-INF/classes oder in WEB-INF/errMsgs abzulegen. es kommt aber immer die selbe fehlermeldung...

    woran könnte es liegen?

    besten dank
  • hi,

    hast du auch eine datei ohne sprachprefix als default?
    also zusätzlich zu errorMsgs_de.properties & errorMsgs_en.properties auch eine "errorMsgs.properties"

    werden diese sprachdateien beim build mit ins sprachverzeichnis kopiert?
    vielleicht kannst du das in deiner IDE irgendwo einstellen
    bei eclipse gehören die properties dateien ins verzeichnis mit den programmdateien -> ins bin verzeichnis

    unter umständen könnten aber auch sonderzeichen im pfad zu deinem problem führen
    z.b. C:\pfäd\für\test\

    viele möglichkeiten....
  • ja, ich habe bisher eine errorMsgs.properties und eine errorMsgs_de.properties angelegt, jeweils mit gleichem inhalt.

    was meinst du mit dem sprachverzeichnis? ich verwende eclipse mit myExclipse erweiterung. darin generiere ich ein war file und das spiele ich dann auf den server.

    wenn ich mir das generierte war file ansehe, sind die propertie dateien auch darin enthalten. also eclipse nimmt sie beim war-file generieren mit...