jsf - 如何强制 tomEE 使用 mojarra?

标签 jsf tomcat mojarra apache-tomee

请问TomEE用mojarra代替myfaces有什么好办法吗?我试图在我的 pom.xml 中添加以下内容。

<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.faces</artifactId>
<version>${mojarra-version}</version>
</dependency>
<dependency>
<groupId>org.apache.openejb</groupId>
<artifactId>tomee-mojarra</artifactId>
<version>1.6.0.2</version>
</dependency>

但是,我在启动TomEE的时候还是报了下面的错误。

SEVERE: StandardWrapper.Throwable
java.lang.IllegalStateException: Could not find backup for factory javax.faces.context.FacesContextFactory. 
    at javax.faces.FactoryFinder$FactoryManager.getFactory(FactoryFinder.java:1135)
    at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:379)
    at javax.faces.webapp.FacesServlet.init(FacesServlet.java:350)
    at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1284)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1197)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1087)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5210)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5493)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)

Jul 22, 2014 6:30:29 PM org.apache.catalina.core.StandardContext loadOnStartup
SEVERE: Servlet /war.upms.online threw load() exception
java.lang.IllegalStateException: Could not find backup for factory     javax.faces.context.FacesContextFactory. 
    at javax.faces.FactoryFinder$FactoryManager.getFactory(FactoryFinder.java:1135)
    at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:379)
    at javax.faces.webapp.FacesServlet.init(FacesServlet.java:350)
    at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1284)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1197)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1087)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5210)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5493)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)

我已经检查并确认 javax.faces-2.2.6.jar 在我部署的 war 的 WEB-INF/lib 中。

如果我从 pom.xml 中删除上述 mojarra 依赖项并改用以下内容,我的应用程序就可以启动。

<dependency>
<groupId>org.apache.myfaces.core</groupId>
<artifactId>myfaces-api</artifactId>
<version>${myfaces-version}</version>
</dependency>
<dependency>
<groupId>org.apache.myfaces.core</groupId>
<artifactId>myfaces-impl</artifactId>
<version>${myfaces-version}</version>
</dependency>

感谢您的帮助。

最佳答案

我认为您需要升级到使用 mojarra 的新 tomee 1.7.0 PLUME。

但是,您可以尝试切换库并查看它是否有效,它们将 javax.faces.xxx.jar 用于 mojarra 和一个适配器,即 tomee-mojarra-1.7.0.jar(并且您必须删除 tomee -myfaces.jar)

关于jsf - 如何强制 tomEE 使用 mojarra?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24885047/

相关文章:

jsf - 如何将选定的值作为参数传递给a4j :support

java - 在 WINDOWS 中,如何找到 Tomcat 使用的 Java 版本?

tomcat - Guacamole 新安装

从表中导出primefaces 数据,列内容在ui :repeat

jsf - JSF 2.2 中的自定义 FaceletFactory/虚拟主机 facelets 的替代品

java - session 过滤器的使用

JSF 中的 Javascript - 没有库、没有名称和正文内容的 outputScript

jsf - 覆盖 Tomcat connectionTimeout 属性

java - net::ERR_CONNECTION_RESET 与 Tomcat 6

jsf - 如何防止 JSF 自动初始化?