带有Web Tools Platform的Eclipse Juno – localhost上的HTTP预览会抛出NoClassDefFoundError

尝试使用Web Tools Platform在
Eclipse Juno中启动HTTP预览时,我不断获得NoClassDefFoundError:org / eclipse / jetty / webapp / WebAppContext.

重现步骤:

>下载,解压缩并启动Eclipse Juno
>从http://download.eclipse.org/releases/juno开始,通过“安装新软件……”安装“Eclipse Web Developer Tools”
>创建新的“静态Web项目”
>在新项目中创建HTML文件
>右键单击Project – >以 – >运行在服务器上运行 – > 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 Tools Platform 3.4.2
> JRE 7

线程“main”中的异常java.lang.NoClassDefFoundError:org / eclipse / jetty / webapp / WebAppContext
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
    在java.lang.Class.getMethod0(未知来源)
    在java.lang.Class.getMethod(未知来源)
    at sun.launcher.LauncherHelper.getMainMethod(Unknown Source)
    在sun.launcher.LauncherHelper.checkAndLoadMain(未知来源)
引起:java.lang.ClassNotFoundException:org.eclipse.jetty.webapp.WebAppContext
    在java.net.URLClassLoader $1.run(未知来源)
    在java.net.URLClassLoader $1.run(未知来源)
    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个

最佳答案 您可以在以下四个阶段中创建补丁并使其适用于您:

阶段1:为需要修补的插件创建插件项目.

>创建新工作区(推荐)或打开现有工作区.
>选择文件 – >进口
>展开Plug-in Development,选择Plug-ins and Fragments,然后单击Next
>在“导入为”部分中,选择“包含源文件夹的项目”
然后单击“下一步”.
>输入(或复制和粘贴,无引号)
org.eclipse.wst.server.preview.adapter到顶部的ID字段和
单击全部添加.这应该将此插件移动到右侧窗格.
>单击“完成”以导入“org.eclipse.wst.server.preview.adapter”
插件源代码到项目中.
>展开项目的根目录并确保它包含一个名为的文件夹
“SRC”.如果你有“WST服务器”,你将只获得“src”文件夹
“适配器插件开发人员资源”已安装.

阶段2:应用更新插件所需的更改.由于附加了可用于应用更改的修补程序的错误,因此以下步骤将利用这一点.

>在浏览器中打开Bug 402848.
>单击Patch v1.0 for 3.4.2p附件链接以打开补丁.
>从第二次出现以—开头的行开始,
在文本末尾选择此行并将其复制到剪贴板.这包含对PreviewLaunchConfigurationDelegate.java文件的更改,该文件是修复所在的位置
需要.你不希望补丁的上半部分会改变插件的版本,这会使事情变得复杂.
>返回Eclipse,右键单击“org.eclipse.wst.server.preview.adapter”项目.选择Team并单击Apply Patch.
>选中“剪贴板”并单击“下一步”.
>确保“org.eclipse.wst.server.preview.adapter”项目是
选中,然后单击“下一步”
>将忽略前导路径名称段设置为3.“修补程序
内容“窗口应该更改为有一个蓝色的左箭头
而不是红色x指标.
>单击“完成”以应用更改.

阶段3:创建替换罐.由于阶段1中的方法,此jar的名称将与您当前的jar相同,这简化了Eclipse安装的更新.

>在Project Explorer或其他导航器视图中右键单击org.eclipse.wst.server.preview.adapter项目,然后选择Export
>展开Plug-in Development,选择Deployable plug-ins和
片段,然后单击下一步
>单击“目标”选项卡中“目录”选择旁边的“浏览”按钮,然后单击“确定”.这会将输出目录设置为与工作区相同.
>单击“完成”以构建替换插件jar.它会出现在
工作区根目录下的“plugins”文件夹.

阶段4:用固定版本替换已安装的插件罐.

>退出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具有相同的版本号,因此无需进行其他更改.

希望能帮助到你 !

点赞