环境:
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提供的类?
答案 0 :(得分:-1)
Wildfly使用Mojarra作为JSF的实现选择。要使用MyFaces,您可以按照此处[1]
中所述的安装步骤进行操作[1] https://developer.jboss.org/wiki/StepsToAddMyFacesSupportToWildFly