带有 Web 工具平台的 Eclipse Juno - 本地主机上的 HTTP 预览抛出 NoClassDefFoundError
Posted
技术标签:
【中文标题】带有 Web 工具平台的 Eclipse Juno - 本地主机上的 HTTP 预览抛出 NoClassDefFoundError【英文标题】:Eclipse Juno with Web Tools Platform - HTTP Preview at localhost throws NoClassDefFoundError 【发布时间】:2013-04-09 12:04:10 【问题描述】:在尝试使用 Web 工具平台在 Eclipse Juno 中启动 HTTP 预览时,我不断收到 NoClassDefFoundError: org/eclipse/jetty/webapp/WebAppContext
。
重现步骤:
-
下载、提取并启动 Eclipse Juno
通过http://download.eclipse.org/releases/juno的“安装新软件...”安装“Eclipse Web Developer Tools”
创建新的“静态 Web 项目”
在新项目中创建 html 文件
右键项目 -> 运行方式 -> 在服务器上运行 -> 在 localhost 上的 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”我发现的类似问题:
NoClassDefFoundError - Eclipse - Apache HTTPClient No HTTP Preview server for Eclipse Juno in Ubuntu 12.04我的主要环境是:
Windows 8 64 位 Eclipse Juno (4.2.2) 64 位 Web 工具平台 3.4.2 JRE 7Exception 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
【问题讨论】:
【参考方案1】:您可以创建补丁并使其在以下四个阶段为您工作:
<strong>Phase 1</strong>: Create a plug-in project for the plug-in you need to patch.
-
创建一个新工作区(推荐)或打开一个现有工作区。
选择
File
-> Import
展开Plug-in Development
,选择Plug-ins and Fragments
,然后点击Next
在Import As
部分中,选择Projects with source folders
然后点击Next
。
输入(或复制和粘贴,无引号)
org.eclipse.wst.server.preview.adapter
进入顶部的 ID
字段和
点击Add All
。这应该会将这个插件移动到右侧窗格中。
点击Finish
导入“org.eclipse.wst.server.preview.adapter”
插件源到项目中。
展开项目的根目录并确保它包含一个名为
“源”。如果您有“WST 服务器”,您只会获得“src”文件夹
适配器插件开发人员资源”已安装。
<strong>Phase 2</strong>: 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
.
-
在浏览器中打开Bug 402848。
点击
Patch v1.0 for 3.4.2p
附件链接打开补丁。
从第二次出现以---
开头的行开始,
通过文本末尾选择这一行并将其复制到剪贴板。这包含对 PreviewLaunchConfigurationDelegate.java 文件的更改,该文件是修复所在
需要。您不想要补丁的上部,因为这会改变插件的版本,这会使事情变得复杂。
返回 Eclipse,右键单击“org.eclipse.wst.server.preview.adapter”项目。选择Team
,然后点击Apply Patch
。
选择剪贴板并点击Next
。
确保“org.eclipse.wst.server.preview.adapter”项目是
选中,然后点击Next
。
将Ignore leading path name segments
设置为 3。“补丁
内容”窗口应更改为有一个蓝色的左箭头
而不是红色的 x 指示符。
点击Finish
应用更改。
<strong>Phase 3:</strong> 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.
-
在项目浏览器或其他导航器视图中右键单击
org.eclipse.wst.server.preview.adapter
项目并选择Export
展开Plug-in Development
,选择Deployable plug-ins and
fragments
,然后点击Next
单击“目标”选项卡中“目录”选项旁边的Browse
按钮,然后单击“确定”。这会将输出目录设置为与您的工作区相同。
点击Finish
构建替换插件jar。会出现在
工作区根目录下的“插件”文件夹。
<strong>Phase 4:</strong> Replace the installed plug-in jar with the fixed version.
-
如果 Eclipse 正在运行,请退出它。
在 Eclipse 安装的“plugins”文件夹下,移动或
重命名 org.eclipse.wst.server.preview.adapter_1.1.101.v20121107_1651.jar 如果你
不想用补丁版本覆盖它(在下面的步骤 3 中提到)。如果您有不同的版本,则表示您没有使用 Juno SR2,希望您安装了与您的版本匹配的“WST 服务器适配器插件开发人员资源”。
复制org.eclipse.wst.server.preview.adapter_1.1.101.v20121107_1651.jar
工作区下的“plugins”文件夹,并将其粘贴到 Eclipse 安装的“plugins”文件夹中。
您现在应该可以使用固定插件运行 Eclipse。由于修补后的 jar 具有相同的版本号,因此无需额外更改。
希望对你有帮助!
【讨论】:
【参考方案2】:可能会在 6 月即将发布的 Kepler 版本中修复。
http://bugs.eclipse.org/402848
【讨论】:
等待新版本不是一个选项,但非常感谢这个链接。不幸的是,我无法应用给定的补丁,但至少我现在知道问题出在哪里。【参考方案3】:谢谢你,
只需下载补丁即可;
http://download.eclipse.org/webtools/patches/drops/R3.4.2/P-3.4.2-20130506185528/patches32x-P-3.4.2-20130506185528.zip
那么;
复制文件到eclipse目录
【讨论】:
以上是关于带有 Web 工具平台的 Eclipse Juno - 本地主机上的 HTTP 预览抛出 NoClassDefFoundError的主要内容,如果未能解决你的问题,请参考以下文章
Eclipse juno 中安装 JBoss Tools,集成Hibernate
无法使用 worklight 6.0.0.2014 插件在 juno 中安装 subeclipse 插件