4

NoClassDefFoundError: org/eclipse/jetty/webapp/WebAppContext在尝试使用 Web 工具平台在 Eclipse Juno 中启动 HTTP 预览时,我不断收到消息。

重现步骤:

  1. 下载、解压并启动 Eclipse Juno
  2. 通过http://download.eclipse.org/releases/juno的“安装新软件...”安装“Eclipse Web Developer Tools”
  3. 创建新的“静态 Web 项目”
  4. 在新项目中创建 HTML 文件
  5. 右键单击项目 -> 运行方式 -> 在服务器上运行 -> 在本地主机上的 HTTP 预览 -> 完成

在这一点上,无论我做什么,我都会不断收到 NoClassDefFoundError 。

我已经尝试过的:

  • 尝试使用 32/64 位 Eclipse
  • 尝试使用 Windows XP、Windows 7
  • 尝试从“Web、XML、Java EE 和 OSGi 企业开发”安装所有工具
  • 尝试从 Eclipse Marketplace 安装“Eclipse Jetty”和“Run-Jetty-Run”
  • 尝试了不同的 Eclipse 包:“Eclipse IDE for Java Developers”、“Eclipse Classic”

我发现了类似的问题:

我的主要环境是:

  • 视窗 8 64 位
  • Eclipse Juno (4.2.2) 64 位
  • 网络工具平台 3.4.2
  • JRE 7

Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/jetty/webapp/WebAppContext at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Unknown Source) at java.lang.Class.getMethod0(Unknown Source) at java.lang.Class.getMethod(Unknown Source) at sun.launcher.LauncherHelper.getMainMethod(Unknown Source) at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source) Caused by: java.lang.ClassNotFoundException: org.eclipse.jetty.webapp.WebAppContext at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 6 more

4

3 回答 3

2

您可以在以下四个阶段创建补丁并使其为您工作:

Phase 1: Create a plug-in project for the plug-in you need to patch.

  1. 创建一个新工作区(推荐)或打开一个现有工作区。
  2. 选择File->Import
  3. 展开Plug-in Development,选择Plug-ins and Fragments,然后单击Next
  4. 在该Import As部分中,选择Projects with source folders 并单击Next
  5. 在顶部的字段中org.eclipse.wst.server.preview.adapter输入(或复制和粘贴,不带引号) ,然后单击。这应该将这个插件移动到右窗格。IDAdd All
  6. 单击Finish以将“org.eclipse.wst.server.preview.adapter”插件源导入项目。
  7. 展开项目的根目录并确保它包含一个名为“src”的文件夹。如果您安装了“WST 服务器适配器插件开发人员资源”,您将只获得“src”文件夹。

Phase 2: Apply the changes needed to update the plug-in. Since there is a bug with a patch attached that can be used to apply the changes, the following steps will take advantage of that.

  1. 在浏览器中打开错误 402848
  2. 点击Patch v1.0 for 3.4.2p附件链接打开补丁。
  3. 从第二次出现以 开头的行开始---,从文本末尾选择此行并将其复制到剪贴板。这包含对 PreviewLaunchConfigurationDelegate.java 文件的更改,这是需要修复的地方。你不想要补丁的上部,因为这会改变插件的版本,这会使事情复杂化。
  4. 回到 Eclipse,右键单击“org.eclipse.wst.server.preview.adapter”项目。选择Team并单击Apply Patch
  5. 选择剪贴板并单击Next
  6. 确保选择了“org.eclipse.wst.server.preview.adapter”项目,然后单击Next
  7. 将 设置Ignore leading path name segments为 3。“补丁内容”窗口应变为蓝色的左箭头,而不是红色的 x 指示符。
  8. 单击Finish以应用更改。

Phase 3: Create the replacement jar. Due to the approach in Phase 1, the name of this jar will be identical to your current jar, which simplifies updating the Eclipse installation.

  1. org.eclipse.wst.server.preview.adapter在 Project Explorer 或其他导航器视图中右键单击项目并选择Export
  2. 展开Plug-in Development,选择Deployable plug-ins and fragments,然后单击Next
  3. 单击Browse目标选项卡中目录选项旁边的按钮,然后单击确定。这会将输出目录设置为与您的工作区相同。
  4. 单击Finish以构建替换插件 jar。它将出现在工作区根目录下的“插件”文件夹中。

Phase 4: Replace the installed plug-in jar with the fixed version.

  1. 如果 Eclipse 正在运行,请退出它。
  2. 在 Eclipse 安装的“plugins”文件夹下,移动或重命名org.eclipse.wst.server.preview.adapter_1.1.101.v20121107_1651.jar,如果您不想用补丁版本覆盖它(在步骤 3 中提到以下)。如果您有不同的版本,这意味着您没有使用 Juno SR2,并且希望您安装了与您的版本匹配的“WST 服务器适配器插件开发人员资源”。
  3. 从工作区下的“plugins”文件夹中复制org.eclipse.wst.server.preview.adapter_1.1.101.v20121107_1651.jar并将其粘贴到 Eclipse 安装的“plugins”文件夹中。

您现在应该能够使用固定插件运行 Eclipse。因为修补的 jar 具有相同的版本号,所以不需要额外的更改。

希望能帮助到你 !

于 2013-06-23T14:42:55.847 回答
0

可能会在 6 月即将发布的 Kepler 版本中修复。

http://bugs.eclipse.org/402848

于 2013-04-17T04:08:30.230 回答
0

谢谢尼丁,

只需下载补丁;

http://download.eclipse.org/webtools/patches/drops/R3.4.2/P-3.4.2-20130506185528/patches32x-P-3.4.2-20130506185528.zip

然后;

复制文件到eclipse目录

于 2015-03-15T19:15:23.127 回答