部署程序集:当前显示的页面包含无效值
Posted
技术标签:
【中文标题】部署程序集:当前显示的页面包含无效值【英文标题】:Deployment Assembly: The currently displayed page contains invalid values 【发布时间】:2012-12-25 13:54:22 【问题描述】:我从 Sourceforge 导入了一个 Java Web 应用程序,我花了三个工作周的时间来消除项目名称和包上的所有红叉,但现在我无法让应用程序在我的 Eclipse 和 tomcat6 开发中运行环境。在我尝试设置部署程序集的项目属性中,对话框显示:当前显示的页面包含无效值。在错误日志中,我发现当我单击部署程序集时,显示了以下错误消息:
错误
Wed Jan 09 10:25:16 CST 2013
Problems occurred when invoking code from plug-in: "org.eclipse.jface".
java.lang.NullPointerException
at org.eclipse.wst.common.componentcore.internal.resources.VirtualFolder.getFirstTaggedResource(VirtualFolder.java:185)
at org.eclipse.jst.j2ee.componentcore.J2EEModuleVirtualComponent.getDefaultDeploymentDescriptorFolder(J2EEModuleVirtualComponent.java:542)
at org.eclipse.jst.j2ee.internal.ui.JavaEEDeploymentAssemblyAdvancedSectionBuilder.(JavaEEDeploymentAssemblyAdvancedSectionBuilder.java:86)
at org.eclipse.jst.j2ee.internal.ui.J2EEModuleDependenciesPropertyPage.getAdvancedSectionBuilder(J2EEModuleDependenciesPropertyPage.java:381)
at org.eclipse.jst.j2ee.internal.ui.J2EEModuleDependenciesPropertyPage.(J2EEModuleDependenciesPropertyPage.java:65)
at org.eclipse.jst.servlet.ui.internal.WebDependencyPropertyPage.(WebDependencyPropertyPage.java:34)
at org.eclipse.jst.servlet.ui.internal.WebModuleDependencyPageProvider.createPages(WebModuleDependencyPageProvider.java:54)
at org.eclipse.wst.common.componentcore.ui.propertypage.ModuleAssemblyRootPage.createContents(ModuleAssemblyRootPage.java:195)
at org.eclipse.jface.preference.PreferencePage.createControl(PreferencePage.java:232)
at org.eclipse.wst.common.componentcore.ui.propertypage.ModuleAssemblyRootPage.createControl(ModuleAssemblyRootPage.java:346)
at org.eclipse.jface.preference.PreferenceDialog.createPageControl(PreferenceDialog.java:1502)
at org.eclipse.jface.preference.PreferenceDialog$14.run(PreferenceDialog.java:1259)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:49)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175)
at org.eclipse.jface.preference.PreferenceDialog.showPage(PreferenceDialog.java:1253)
at org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog.showPage(FilteredPreferenceDialog.java:675)
at org.eclipse.jface.preference.PreferenceDialog$10.run(PreferenceDialog.java:709)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
at org.eclipse.jface.preference.PreferenceDialog$9.selectionChanged(PreferenceDialog.java:705)
at org.eclipse.jface.viewers.StructuredViewer$3.run(StructuredViewer.java:888)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:49)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175)
at org.eclipse.jface.viewers.StructuredViewer.firePostSelectionChanged(StructuredViewer.java:886)
at org.eclipse.jface.viewers.StructuredViewer.handlePostSelect(StructuredViewer.java:1226)
at org.eclipse.jface.viewers.StructuredViewer$5.widgetSelected(StructuredViewer.java:1251)
at org.eclipse.jface.util.OpenStrategy.firePostSelectionEvent(OpenStrategy.java:262)
at org.eclipse.jface.util.OpenStrategy.access$5(OpenStrategy.java:256)
at org.eclipse.jface.util.OpenStrategy$3.run(OpenStrategy.java:433)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4144)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3761)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:825)
at org.eclipse.jface.window.Window.open(Window.java:801)
at org.eclipse.ui.dialogs.PropertyDialogAction.run(PropertyDialogAction.java:158)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584)
at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501)
at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4169)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3758)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1022)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:916)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:86)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:585)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:540)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:353)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:180)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:629)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:584)
at org.eclipse.equinox.launcher.Main.run(Main.java:1438)
at org.eclipse.equinox.launcher.Main.main(Main.java:1414)
我用谷歌搜索了很多次,但我找不到解决方案。谁能帮个忙让部署大会工作?我认为这是我的应用程序无法运行的关键。提前致谢。
【问题讨论】:
您找到解决方案了吗?我在 Juno 遇到了同样的问题 @RuntimeError,请问你解决了吗? 【参考方案1】:eclipse -clean 没有为我修复它。我的解决方法:在 Eclipse 中删除项目(不要在磁盘上删除)。然后在文件系统中删除 .project .classpath 和 .settings/* 然后在 eclipse 中,相同的工作区,创建与旧的同名的新 webproject。它创建了项目并找到了我所有的源代码。现在部署程序集再次工作!之后,我更新了构建路径以拥有正确的项目和库依赖项。
【讨论】:
我在 C/C++ 项目(使用 CDT)中遇到了类似的问题,这条评论为我解决了这个问题。在我的特殊情况下, .cproject 文件中有陈旧的值。在 Eclipse 中删除项目,关闭它,删除项目目录中的 .project、.cproject 和 .settings 隐藏文件,再次启动 Eclipse 并重新创建项目就像一个魅力。谢谢! 我只是在删除.project、.classpath和.setting/*后再次导入了项目,它可以工作。谢谢。 仅作记录,eocanha 的解决方案对我不起作用 :-( 虽然我承认我无法理解为什么。听起来它应该起作用。哦,好吧,我只会退后一步,到 4.5.1 我也删除了.metadata
,但这并没有帮助:-(【参考方案2】:
请看this answer。如果clean
没有帮助,那么您的项目的特定设置可能有问题。我建议您检查 .settings/
目录中的每个文件。
我知道这不是一个现成的解决方案,但可能至少是一个起点。
【讨论】:
修改.settings目录下的文件后不要忘记重启eclipse 为我工作:必须编辑org.eclipse.wst.common.componnent
文件【参考方案3】:
我也遇到过这个问题。这是因为我删除了我当前项目所依赖的另一个项目。我通过在 .settings 文件夹中打开文件 org.eclipse.wst.common.component
并删除依赖项来解决此问题。这解决了问题,我能够编辑部署程序集。
我删除的部分:(utility.jar 是我的违规 jar 的名称)
<dependent-module archiveName="utility.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/utility/utility">
<dependency-type>uses</dependency-type>
</dependent-module>
与我一起工作的其他人能够通过从他们的构建路径中删除 jar 来修复它。
希望这对遇到此问题的人有所帮助。
【讨论】:
我打开文件并添加以下行:删除 .project .classpath 和 .settings 然后清理一个新的(临时)工作区 在新工作区中导入您的项目,这将生成新的 .project .classpath 和 .settings 文件。然后再次打开旧工作区并修复问题。如果不需要,可以删除临时工作区
【讨论】:
【参考方案5】:请检查.settings文件夹下的这个文件“.settings/org.eclipse.wst.common.component”映射到UI中的部署程序集。请检查“wb-module”标签并清理wb-resource里面的物品(如果有的话)。
此文件将在 Eclipse 的导航器视图中可见
【讨论】:
【参考方案6】:在添加Source(一个文件夹)并尝试修改Deploy Path后,我在不同的情况下遇到了相同的状态。因此,得到了相同的错误消息:部署程序集:当前显示的页面包含无效值。不幸的是,上面的想法并没有帮助,许多人似乎建议对一个看似很小的配置问题进行更大的删除/重新安装操作。
不幸的是,在给定的错误状态下,Eclipse(版本:Mars.2 Release (4.5.2))不允许使用 GUI 来纠正问题……所以我接下来做了什么。
我发现 workspace/project/.settingsxml 文件 org.eclipse.wst.common.component 中的条目标记为:<wb-resource .... />
/strong> - 文件夹的 wb 资源条目不完整。我需要在其中包含类似的内容:
<wb-resource deploy-path="/" source-path="/web" tag="defaultRootSource"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src"/>
wegb 行不完整,包含 src 的行完全丢失。此文件/位置已被定位并在早期答案中被识别为可能损坏/无效。修复这个文件并没有让我得到 GUI 工作。接下来我必须从插件历史记录中删除几行。
在 workspace/.metadata/.plugins/org.eclipse.core.resources/.history -文件夹中,我找到了最新的文件夹并删除了包含与部署程序集相关的更改的文件夹。
重启 Eclipse 后,我可以再次使用 GUI 进行配置! 我不需要删除/重新安装项目(我想避免由于大量配置而重新安装项目)。我希望这可以帮助遇到相同错误消息的其他人。
【讨论】:
【参考方案7】:我遇到了同样的问题,我意识到它是在我将某个旧插件安装到我的 Neon.1a Eclipse 中后开始的,该插件针对版本 3.x。
所以我卸载了那个插件,问题就消失了,没有改变我的工作区。
(为了补充信息,我会说“罪魁祸首”是 Randalco EHP 插件,但我想任何旧版本的插件也可能是可疑的)。
【讨论】:
【参考方案8】:添加:
--launcher.GTK_version
2
到 eclipse.ini 为我解决了 Fedora 33 GNOME 上的问题
【讨论】:
以上是关于部署程序集:当前显示的页面包含无效值的主要内容,如果未能解决你的问题,请参考以下文章