在WildFly 8.2.0上部署MyFaces 2.2.8

时间:2016-01-08 09:04:29

标签: cdi jsf-2.2 wildfly-8 java-ee-7 myfaces

环境:

JAVA EE 7

CDI

WildFly 8.2.0

MyFaces 2.2.8

问题:

我正在尝试使用myFaces 2.2.8作为默认的JSF实现来运行WildFly 8.2.0。 安装完成。有关这方面的详细信息是另一个问题:

Installing Apache MyFaces 2 on WildFly 8.2.0

当我在WildFly 8.2.0上部署我的应用程序之战时,会抛出以下异常并且部署无法完成。

引起:[Module" com.sun.jsf-impl:myfaces-2.2.8" java.lang.ClassNotFoundException:org.apache.tomcat.InstanceManager来自本地模块加载器@ 736e9adb

(finder:local module finder @ 6d21714c(roots:C:\ Users \ xyz \ wildfly-8.2.0.Final \ modules,C:\ Users \ xyz \ wildfly-8.2.0.Final \ modules \ system \层\基))]     在org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:213)[jboss-modules.jar:1.3.3.Final]     在org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:459)[jboss-modules.jar:1.3.3.Final]     在org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:408)[jboss-modules.jar:1.3.3.Final]     在org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:389)[jboss-modules.jar:1.3.3.Final]     在org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:134)[jboss-modules.jar:1.3.3.Final]     at org.apache.myfaces.spi.impl.Tomcat7AnnotationInjectionProvider.initManager(Tomcat7AnnotationInjectionProvider.java:182)     at org.apache.myfaces.spi.impl.Tomcat7AnnotationInjectionProvider.postConstruct(Tomcat7AnnotationInjectionProvider.java:85)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[rt.jar:1.8.0_60]     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)[rt.jar:1.8.0_60]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[rt.jar:1.8.0_60]     在java.lang.reflect.Method.invoke(Method.java:497)[rt.jar:1.8.0_60]     在javax.faces.FactoryFinder.injectAndPostConstruct(FactoryFinder.java:415)     在javax.faces.FactoryFinder.newFactoryInstance(FactoryFinder.java:519)     在javax.faces.FactoryFinder._getFactory(FactoryFinder.java:361)     在javax.faces.FactoryFinder.getFactory(FactoryFinder.java:225)     at com.sun.faces.config.processor.FactoryConfigProcessor.verifyFactoriesExist(FactoryConfigProcessor.java:186)     at com.sun.faces.config.processor.FactoryConfigProcessor.process(FactoryConfigProcessor.java:131)     在com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:203)     ......还有10个

我在网上搜索了这个问题,并在http://www.hivmr.com/db/3jsapc8j3xz3js1dsasjxjpkx37379cm找到了同样的问题,但没有找到解决方案。

问题可以描述为:

1)MyFaces使用Tomcat7AnnotationInjectionProvider进行注释处理,这需要org.apache.tomcat.InstanceManager,这是不可用的。

2)一种解决方案是使用CDIAnnotationDelegateInjectionProvider,但是如何在MyFaces中配置它是未知的?

3)如何在WildFly中挂钩MyFaces以便JBOSS Weld可以处理注释而不是MyFaces提供的类?

1 个答案:

答案 0 :(得分:-1)

Wildfly使用Mojarra作为JSF的实现选择。要使用MyFaces,您可以按照此处[1]

中所述的安装步骤进行操作

[1] https://developer.jboss.org/wiki/StepsToAddMyFacesSupportToWildFly