web-dev-qa-db-ja.com

java.util.MissingResourceException:ベース名resources.application、localeenのバンドルが見つかりません

私のfaces-config.xmlは以下が好きです。

<?xml version="1.0" encoding="UTF-8"?>

<faces-config
xmlns="http://Java.Sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://Java.Sun.com/xml/ns/javaee http://Java.Sun.com/xml/ns/javaee/web- 
facesconfig_2_0.xsd"
version="2.0">
<application>
    <message-bundle>resources.application</message-bundle>
    <locale-config>
        <default-locale>en</default-locale>
    </locale-config>
</application>

</faces-config>

Xhtmlファイル

<f:loadBundle basename="resources.application" var="msg"/>

以下の例外が発生します

javax.faces.view.facelets.TagAttributeException: //D:/12c_Workspace/VNPO/WebContent/login.xhtml @9,59 <f:loadBundle basename="resources.application"> Can't find bundle for base name resources.application, locale en
    at com.Sun.faces.facelets.tag.jsf.core.LoadBundleHandler.apply(LoadBundleHandler.Java:233)
    at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.Java:98)
    at com.Sun.faces.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.Java:93)
    at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.Java:98)
    at com.Sun.faces.facelets.compiler.EncodingHandler.apply(EncodingHandler.Java:86)
    at com.Sun.faces.facelets.impl.DefaultFacelet.apply(DefaultFacelet.Java:152)
    at com.Sun.faces.application.view.FaceletViewHandlingStrategy.buildView(FaceletViewHandlingStrategy.Java:774)
    at com.Sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.Java:100)
    at com.Sun.faces.lifecycle.Phase.doPhase(Phase.Java:101)
    at com.Sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.Java:139)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.Java:594)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.Java:242)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.Java:216)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.Java:132)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.Java:338)
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.Java:25)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.Java:74)
    at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.Java:27)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.Java:74)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.Java:3288)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.Java:3254)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.Java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.Java:120)
    at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.Java:57)
    at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.Java:2163)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.Java:2089)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.Java:2074)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.Java:1513)
    at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.Java:254)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.Java:256)
    at weblogic.work.ExecuteThread.run(ExecuteThread.Java:221)
Caused by: Java.util.MissingResourceException: Can't find bundle for base name resources.application, locale en
    at Java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.Java:1427)
    at Java.util.ResourceBundle.getBundleImpl(ResourceBundle.Java:1250)
    at Java.util.ResourceBundle.getBundle(ResourceBundle.Java:952)
    at com.Sun.faces.facelets.tag.jsf.core.LoadBundleHandler.apply(LoadBundleHandler.Java:227)

これはどのように発生し、どうすれば解決できますか?

5

例外は、ランタイムクラスパスのresourcesパッケージにapplication_en.propertiesまたは少なくともapplication.propertiesファイルがないことを明確に示しています。

本当にそれだけです。持っていることを確認してください。


具体的な問題とは無関係ですが、<message-bundle><f:loadBundle>は相互に排他的であることを警告したいと思います。違いについては、 JSFでの国際化、いつmessage-bundleとresource-bundleを使用するか? に進んでください。

9
BalusC

あなたは2つのものが必要です:

  1. messages.propertiesファイルをクラスパスに含める。最も安全な方法は、それをsrc/main/Java/your/package/nameの下に置くことです。
  2. faces-config.xmlで構成します。

http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd "version =" 2.2 ">

    <application>
        <resource-bundle>
            <base-name>your.package.name.messages</base-name>
            <var>i18n</var>
        </resource-bundle>
    </application>

</faces-config>

.propertiesfaces-config.xmlサフィックスを含めないことに注意してください

3
ACV

Mavenを使用している場合は、src/main/Javaにあるパッケージではなくsrc/main/resourcesフォルダーにプロパティファイルを配置する必要があります。

2
Carlos Suraez

これがあなたができることです:

  • ステップI:インストールして使用するMavenファイルを保持します。

  • ステップII:環境変数でMavenのクラスパスを設定する必要があります

  • ステップIII: Mavenディレクトリのmvn installディレクトリに到達した後、コマンド/binを使用してMavenをインストールしますコマンドプロンプト

プロジェクトをクリーンアップし、Mavenプロジェクトをデプロイして実行します。

0
Firdi