GlassFish服务器中的java.lang.UnsupportedClassVersionError?

时间:2013-04-06 22:44:28

标签: java glassfish

我正在尝试将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;
    }
}

1 个答案:

答案 0 :(得分:6)

您已使用Java 7或更新版本编译了com.tugay.User源文件,并尝试在Java 6上运行它。.class格式中存在Java 7更改,以便在非静态类型语言。有关详细信息,请参阅the official oracle documentation

您可以尝试

  • 将您的生产运行时升级到7,
  • 使用1.6进行编译,或
  • 使用-source 1.6 -target 1.6作为构建脚本的修饰符

another question还有进一步的解释。

相关问题