我尝试使用以下代码在嵌入式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中时,堆栈跟踪没有用处。
任何想法都可能出错? 如何找到导致此类的类?
谢谢, Ondra
答案 0 :(得分:0)
离开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