如何在jsf Web应用程序中从依赖jar加载资源包

时间:2017-11-15 07:32:38

标签: java jsf intellij-idea gradle

我试图从我的Web应用程序中的依赖jar加载资源包。 Intellij可以解决类似的问题:

#{common['key']}

但是payara会抛出一个错误:"无法找到基本名称common,locale de_DE"的捆绑包。

我的项目如下:

Dependency Jar:
    resources /
        META-INF /
            - common.properties
            - faces-config.xml

Web Application:
    resources /
        - messages.properties
    webapp /
        WEB-INF /
           - faces-config.xml

依赖关系jar中的faces-config.xml如下所示:

<?xml version='1.0' encoding='UTF-8'?>
<faces-config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.2"
          xmlns="http://xmlns.jcp.org/xml/ns/javaee"
          xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
    http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd">
    <application>
        <resource-bundle>
            <base-name>common</base-name>
            <var>common</var>
        </resource-bundle>
    </application>
</faces-config>

Web应用程序中的faces-config.xml如下所示:

<?xml version='1.0' encoding='UTF-8'?>
<faces-config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.2"
          xmlns="http://xmlns.jcp.org/xml/ns/javaee"
          xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd">
    <application>
        <resource-handler>org.omnifaces.resourcehandler.UnmappedResourceHandler</resource-handler>
        <resource-bundle>
            <base-name>common</base-name>
            <var>common</var>
        </resource-bundle>
        <resource-bundle>
            <base-name>messages</base-name>
            <var>messages</var>
        </resource-bundle>
    </application>
</faces-config>

我也尝试从webapp的faces-config中删除公共资源包,但这没有帮助。

如何从其他jar文件中访问消息?

0 个答案:

没有答案