从Tomcat升级后出于某种原因 6 - > Tomcat 7 和来自MyFaces 2.0 - > MyFaces 2.2 (使用OmniFaces 1.7 )
我开始收到以下错误
javax.faces.FacesException:找不到任何已注册的内容 converter-class by converterId:omnifaces.GenericEnumConverter 在org.apache.myfaces.application.ApplicationImpl.createConverter(ApplicationImpl.java:1533) 在org.omnifaces.application.OmniApplication.createConverter(OmniApplication.java:77) at org.apache.myfaces.view.facelets.tag.jsf.ValueHolderRule $ LiteralConverterMetadata.applyMetadata(ValueHolderRule.java:50) 在org.apache.myfaces.view.facelets.tag.MetadataImpl.applyMetadata(MetadataImpl.java:45) 在javax.faces.view.facelets.MetaTagHandler.setAttributes(MetaTagHandler.java:63) 在javax.faces.view.facelets.DelegatingMetaTagHandler.setAttributes(DelegatingMetaTagHandler.java:90) 在org.apache.myfaces.view.facelets.tag.jsf.ComponentTagHandlerDelegate.apply(ComponentTagHandlerDelegate.java:290) 在javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:50) 在javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:46) 在javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:55)
我现在唯一可以使用omnifaces.GenericEnumConverter
的方法是手动将其添加到 faces-config.xml ,如下所示:
<converter>
<converter-id>omnifaces.GenericEnumConverter</converter-id>
<converter-class>org.omnifaces.converter.GenericEnumConverter</converter-class>
</converter>
任何想法为什么?我该如何解决?
感谢。
答案 0 :(得分:1)
如果你有
,就会发生这种情况<faces-config ... metadata-complete="true">
在您的网络应用/WEB-INF/faces-config.xml
中。这样,JSF就不会扫描JAR以获取其他JSF工件,例如@FacesConverter
等等。
Jsut删除整个metadata-complete
属性,默认为false
。
无关,MyFaces 2.2内部已经修复了the problem,其中引入了OmniFaces GenericEnumConverter
作为解决方案。您实际上可以安全地从代码中删除它。