我正在开发使用JSF 2.2的新项目。我的工具 id Netbeans 7.3 Bata1 + Mysql + EclipseLink。
我想在我的项目中使用 tag,但是在将 JSF 2.2 库添加到项目并对其进行测试部署后,我收到一些警告消息:
WARNING: Multiple [2] JMX MBeanServer instances exist, we will use the server at index [0] : [com.sun.enterprise.v3.admin.DynamicInterceptor@6054cd1b].
WARNING: JMX MBeanServer in use: [com.sun.enterprise.v3.admin.DynamicInterceptor@6054cd1b] from index [0]
WARNING: JMX MBeanServer in use: [com.sun.jmx.mbeanserver.JmxMBeanServer@235fe684] from index [1]
WARNING: WEB9052: Unable to load class javax.faces.render.RendererWrapper, reason: java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/faces/render/RendererWrapper
WARNING: WEB9052: Unable to load class javax.faces.component.UIViewAction, reason: java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/faces/component/UIViewAction
WARNING: WEB9052: Unable to load class javax.faces.component.html.HtmlInputFile, reason: java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/faces/component/html/HtmlInputFile
当我插入页面并在浏览器上打开它时,我收到此错误:
/system/systemThemes.xhtml @188,102 <h:inputFile> Tag Library supports namespace: http://java.sun.com/jsf/html, but no tag was defined for name: inputFile
如何解决此问题?我尝试研究了几天,但没有找到任何解决方案。
java.lang.ClassFormatError:在类文件 javax/faces/component/html/HtmlInputFile 中不是本机或抽象的方法中缺少代码属性
您安装了包含 API 的 JAR 文件(javax.faces.*
),但没有安装包含 impl 的 JAR 文件(例如 Mojarra, com.sun.faces.*
)。你基本上最终会得到来自JSF API的几个抽象类/接口,而没有做真正工作的具体实现。这就像导入和使用 JDBC 代码,但不使用特定于供应商的 JDBC 驱动程序(这是 JDBC API 的具体实现)。
确保也使用 impl 安装 JAR。从 Maven 的 /jsf-api
和 /jsf-impl
文件夹中获取 JAR 文件。