我正在尝试在 Websphere 8.5 中启动并运行 Mojarra 2.2.6(或 MyFaces 2.2.2,两者上的相同例外)。我已经像往常一样将类加载器设置正确设置为 PARENT_LAST 和 SINGLE。新 jar 正在成功拾取,但抛出以下讨厌的异常并导致应用程序无法启动。任何帮助不胜感激,谢谢!
An exception occurred while validating an annotation: com.ibm.wsspi.amm.validate.ValidationException: SRVE8016E: The @MultipartConfig annotation can not be applied to the class, javax.faces.webapp.FacesServlet, because it extends the wrong super class
全栈跟踪
4/3/14 17:21:16:800 EDT] 00000715 annotations E CWWAM0003E: An exception occurred while validating an annotation: com.ibm.wsspi.amm.validate.ValidationException: SRVE8016E: The @MultipartConfig annotation can not be applied to the class, javax.faces.webapp.FacesServlet, because it extends the wrong super class
com.ibm.wsspi.amm.validate.ValidationException: SRVE8016E: The @MultipartConfig annotation can not be applied to the class, javax.faces.webapp.FacesServlet, because it extends the wrong super class
at com.ibm.ws.webcontainer.annotation.validator.MultipartConfigValidator.validateClassAnnotation(MultipartConfigValidator.java:44)
at com.ibm.ws.webcontainer.annotation.validator.MultipartConfigValidator.validateClassAnnotation(MultipartConfigValidator.java:39)
at com.ibm.ws.webcontainer.annotation.validator.MultipartConfigValidator.validate(MultipartConfigValidator.java:35)
at com.ibm.wsspi.amm.merge.AbstractMergeAction.mergeClassTargets(AbstractMergeAction.java:353)
at com.ibm.wsspi.amm.merge.AbstractMergeAction.merge(AbstractMergeAction.java:123)
at com.ibm.ws.amm.AnnotativeMetadataManagerImpl.performMergeOperations(AnnotativeMetadataManagerImpl.java:509)
at com.ibm.ws.amm.AnnotativeMetadataManagerImpl.merge(AnnotativeMetadataManagerImpl.java:274)
at com.ibm.ws.amm.commonarchive.AnnotationsProcessorImpl.merge(AnnotationsProcessorImpl.java:144)
at com.ibm.ws.amm.commonarchive.AnnotationsProcessorImpl.merge(AnnotationsProcessorImpl.java:66)
at org.eclipse.jst.j2ee.commonarchivecore.internal.impl.WARFileImpl.processAnnotations(WARFileImpl.java:923)
at com.ibm.ws.webfragmerger.WebFragMergerImpl.merge(WebFragMergerImpl.java:493)
at org.eclipse.jst.j2ee.commonarchivecore.internal.impl.WARFileImpl.mergeAnnotationsAndFragments(WARFileImpl.java:869)
at org.eclipse.jst.j2ee.commonarchivecore.internal.impl.WARFileImpl.getDeploymentDescriptor(WARFileImpl.java:648)
at org.eclipse.jst.j2ee.commonarchivecore.internal.impl.WARFileImpl.getDeploymentDescriptor(WARFileImpl.java:367)
at org.eclipse.jst.j2ee.commonarchivecore.internal.impl.WARFileImpl.getDeploymentDescriptor(WARFileImpl.java:349)
at com.ibm.ws.websvcs.deploy.PersistentStorageInstallTask.processClientBindings(PersistentStorageInstallTask.java:306)
at com.ibm.ws.websvcs.deploy.PersistentStorageInstallTask.performTask(PersistentStorageInstallTask.java:168)
at com.ibm.ws.management.application.SchedulerImpl.run(SchedulerImpl.java:315)
at java.lang.Thread.run(Thread.java:780)
我在使用 WAS 8.0.0.8 时遇到了同样的问题。 我通过从我的 Web 应用程序中删除 Mojarra jars (jsf-api & jsf-impl jars) 并将它们添加到隔离的共享库中来解决此问题。此外,我需要在隔离的共享库中添加素数 jar(我使用了 PF 4.0),以使错误消失。
错误
SRVE8016E: The @MultipartConfig annotation can not be applied to the class, javax.faces.webapp.FacesServlet, because it extends the wrong super class
是一个 Websphere 错误,更新到 8.5.5.6 可以修复它。
我写这篇博客是为了演示如何让 websphere 8.5 使用 mojarra 而不是 myfaces。
http://mojarraonwebsphere.blogspot.com/2014/09/upgrading-mojarra-in-ibm-websphere-85.html