0

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

1 回答 1

7

您已经com.tugay.User使用 Java 7 或更新版本编译了源文件,并尝试在 Java 6 上运行它。Java 7 对.class格式进行了更改,以便在非静态类型语言上获得更好的性能。有关更多信息,请参阅官方 oracle 文档

你可以尝试

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

在另一个问题中有进一步的解释。

于 2013-04-06T23:15:00.543 回答