我正在尝试将WAR文件部署到GlassFish服务器。我收到以下错误:
[#| 2013-04-06T17:50:56.982-0430 |警告| glassfish3.1.2 | javax.enterprise.system.container.web.org.glassfish.web.loader | _ThreadID = 17; _ThreadName = Thread- 2; | WEB9052:无法加载类com.tugay.User,原因:java.lang.UnsupportedClassVersionError:WEB9032:类com.tugay.User具有不受支持的主要或次要版本号,这些版本号大于Java运行时环境中的版本号版本1.6.0_37 |#]
为什么抱怨我的Java版本?我在班上有一个@Named
注释。 Java 1.6.0_37不支持此注释吗?
package com.tugay.user;
import javax.faces.bean.SessionScoped;
import javax.inject.Named;
import java.io.Serializable;
@Named("userBean")
@SessionScoped
public class UserBean implements Serializable {
private String userName;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
}
答案 0 :(得分:6)
您已使用Java 7或更新版本编译了com.tugay.User
源文件,并尝试在Java 6上运行它。.class
格式中存在Java 7更改,以便在非静态类型语言。有关详细信息,请参阅the official oracle documentation。
您可以尝试
-source 1.6 -target 1.6
作为构建脚本的修饰符another question还有进一步的解释。