【问题标题】:Wicket app in embedded Jetty causes UnsupportedClassVersionError嵌入式 Jetty 中的 Wicket 应用程序导致 UnsupportedClassVersionError
【发布时间】:2011-02-15 18:17:15
【问题描述】:

我尝试使用以下代码在嵌入式 Jetty 中运行 Wicket 应用:

public static void main( String[] args ){

  Server server = new Server(8080);
  Context root = new Context( server, "/", Context.SESSIONS );


  FilterHolder filterHolder = new FilterHolder( new WicketFilter() );
  filterHolder.setInitParameter("applicationClassName", cz.dw.test.WicketApplication.class.getName() );
  root.addFilter( filterHolder, "/*" , Handler.ALL );

  try {
   server.start();
  } catch (Exception ex) {
   ex.printStackTrace();
  }

 }

但我得到了java.lang.UnsupportedClassVersionError: Bad version number in .class file

为我的应用 (1.6 -> 1.5) 切换目标类版本没有帮助。

我使用 Sun JDK 1.6.0_17、Wicket 1.4.8、Jetty 6.1.24

当我正常运行应用程序时(部署到 Jetty 或 mvn jetty:run),它运行良好。

我尝试调试,但 JRE 类没有调试数据。堆栈跟踪没有用,因为它在将类加载到 JVM 时发生。

有什么想法可能是错的吗? 我怎样才能找到哪个类导致了这种情况?

谢谢, 翁德拉

【问题讨论】:

    标签: jetty wicket java


    【解决方案1】:

    离开IDE后发现pom.xml的版本还是1.6——所以IDE没有改;不过,我想知道为什么在我积极使用 JDK 1.6 时会发生这种情况。也许 Jetty 插件会更改类加载配置?

    更新:所以问题出在 NetBeans、Maven 和 Maven 的 exec 插件之间。不知何故,exec 插件进入了 java 被解析为 /usr/bin/java 的环境,这是 Sun JDK 1.5.0

    我将此报告为 NetBeans 错误。 http://netbeans.org/bugzilla/show_bug.cgi?id=185547

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-06
      • 2013-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多