java - Wicket Jetty 与快速启动中的 Start.java 集成停止工作

标签 java jetty wicket

我刚刚将我的(工作)wicket 项目检查到了一台新的开发机器上,突然之间,每当我尝试启动 jetty 时,我都会收到此错误。

java.lang.NoClassDefFoundError: net/unbewaff/Start
Caused by: java.lang.ClassNotFoundException: net.unbewaff.Start
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Exception in thread "main" 

当我删除该文件时,类文件就在那里,并且 Eclipse 会重建它。未找到的类是包含我正在尝试运行并应该启动嵌入式 jetty 的主要方法的类。即使 cd 到该目录,查看该文件并在命令行中键入 java Start.class 也会出现相同的错误,但措辞略有不同。

Wicket and embedded jetty - classNotFoundException似乎相关,但并非如此,因为稍后在加载 Start 类之后会发生所描述的错误。

我做了什么:

  1. 从存储库中 checkout 了该项目
  2. 运行 mvn clean install
  3. 运行 mvn eclipse:eclipse
  4. 在 eclipse 中创建项目
  5. 尝试启动应用
  6. 撞墙

老实说,我不认为这是一个 Wicket 口或 jetty 问题,但由于它们都以某种方式参与其中,我希望有人已经解决了这个问题......

我检查的事情:

  • 该文件确实存在,是最新且可读的
  • 我尝试查看调用 javap Start.class 的字节码,但没有成功(错误:找不到 Start.class)
  • 使用文本编辑器打开类文件(看起来“正确的二进制”)
  • running mvn jetty:run (启动并与 web 应用程序一起运行 jetty)

有什么帮助:

正如 Martijn 所建议的,我获取了一个新的快速入门并比较了 Start 类。快速入门中的那个工作得很好,我和我的差异工具唯一的区别是连接器上的端口发生了变化,但快速入门中的类接受了这些,没有任何问题。然后我将快速入门中的类复制到我的项目中,它在 Dummy.java 的名称下运行良好。删除有问题的类、清理工作区并将其重命名为 Start.java 后,它停止工作。将其重命名回 Dummy 使其恢复工作状态。

所以我找到了一个可行的解决方法,但仍然不知道出了什么问题。

最佳答案

您在 Start 类中引用的某些内容未找到:它是 ClassDefNotFoundException,这是最难解决的错误之一。它阻止类加载器加载您的 Start 类。

在我看来,前进的最佳方法是生成一个新的快速启动,运行它,并将内容从您自己的启动类移动到快速启动类,直到它崩溃。

关于java - Wicket Jetty 与快速启动中的 Start.java 集成停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13397955/

相关文章:

java - 没有 Activity 的 runOnUiThread

java - 我可以在 Java 中的泛型类型上调用 .class 吗?

java - jetty 、JNDI、PostgreSQL : Class not found

logging - 如何在 Wicket 开发模式下抑制堆栈跟踪和 html

java - ajax 更新中删除了 Wicket 表单更改

java - HTTP 错误 415 带有 XML 参数的 REST 服务操作不支持媒体类型 (Jersey + Jetty)

java - maven-jetty-插件 jetty :run error

java - 如何使用 -Dmaven.test.skip 控制 Maven Jetty 插件的执行

java - Wicket:在 Ajax 响应期间显示按钮

java - TreeMap 中的二分查找