【问题标题】:Could not find backup for factory javax.faces.application.ApplicationFactory找不到工厂 javax.faces.application.ApplicationFactory 的备份
【发布时间】:2013-03-30 14:59:05
【问题描述】:

我目前正在研究以下堆栈:jboss7.1.3、javaee-api 和 jsf 2.1.19。并且无法绕过这个错误:

Unexpected exception when attempting to tear down the Mojarra runtime: java.lang.IllegalStateException: Could not find backup for factory javax.faces.application.ApplicationFactory.

这很奇怪,因为当我不稀释战争时,问题就不会出现。细化战争意味着在maven战争插件中添加以下配置:

<configuration>
    <failOnMissingWebXml>false</failOnMissingWebXml>
    <packagingExcludes>WEB-INF/lib/*.jar</packagingExcludes>
    <archive>
        <manifest>
            <addClasspath>true</addClasspath>
            <classpathPrefix>lib</classpathPrefix>
        </manifest>
    </archive>
</configuration>

我希望我所有的 jars 都在 app/lib 文件夹中,这样就不会出现 LinkageError。这是因为我的 web 项目也依赖于 EJB 项目。但问题是我有一个带有方法签名的基类,这两个模块正在使用它并抛出此错误:

java.lang.LinkageError: loader constraint violation: when resolving method "com.czetsuya.myApp.bean.MyManagedBean.getEntity()Lcom/czetsuya/myApp/model/MyEntity;" the class loader (instance of org/jboss/modules/ModuleClassLoader) of the current class, com/czetsuya/myApp/util/view/composite/BackingBeanBasedCompositeComponent, and the class loader (instance of org/jboss/modules/ModuleClassLoader) for resolved class, com/czetsuya/myApp/bean/MyManagedBean, have different Class objects for the type pship/model/MyEntity; used in the signature

我的想法是在 lib 文件夹中为 2 个模块提供 1 个类加载器。所以两个模块都将使用父级优先加载。

或者我的方法完全错误?有什么建议吗?

【问题讨论】:

标签: maven jsf-2 jboss7.x java-ee-6


【解决方案1】:

基本上我所做的是删除了 jsf 依赖并坚持使用 javaee-api。这个解决方案对我有用。依赖 jsf*.jar 和 javaee6-api jar 会产生一些难以调试的错误。

【讨论】:

    猜你喜欢
    • 2013-09-24
    • 1970-01-01
    • 2014-06-11
    • 1970-01-01
    • 2012-10-12
    • 2014-09-07
    相关资源
    最近更新 更多