MyEclipse 打开Struts配置文件时出错的终级解决办法

参考博文:http://www.busfly.cn/post/MyEclipse-Struts-open-error.html

通过手动加入Struts包来开发J2EE工程,可是结果却发现不能使用Struts的默认编辑器来打开Struts配置文件,双击打开Struts配置文件时,就出错,图片如下:见连接

    org.eclipse.ui.PartInitException: Project newsjq is not configured as a MyEclipse Web-Struts Project. Therefore the MyEclipse Struts Editor may not be used with struts-config.xml. The default XML Editor has been used to open the file instead. 
     at com.genuitec.eclipse.struts.editor.multipage.StrutsConfigEditor.init(StrutsConfigEditor.java:475) 
     at org.eclipse.ui.internal.EditorManager.createSite(EditorManager.java:794) 
     at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:643) 
     at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:426) 
     at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:592) 
     at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:299) 
     at org.eclipse.ui.internal.presentations.PresentablePart.setVisible(PresentablePart.java:179) 
     at org.eclipse.ui.internal.presentations.util.PresentablePartFolder.select(PresentablePartFolder.java:268) 
     at org.eclipse.ui.internal.presentations.util.LeftToRightTabOrder.select(LeftToRightTabOrder.java:65) 
     at org.eclipse.ui.internal.presentations.util.TabbedStackPresentation.selectPart(TabbedStackPresentation.java:400)
     at org.eclipse.ui.internal.PartStack.refreshPresentationSelection(PartStack.java:1256) 
     at org.eclipse.ui.internal.PartStack.setSelection(PartStack.java:1209) 
     at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:1604) 
     at org.eclipse.ui.internal.PartStack.add(PartStack.java:499) 
     at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:103) 
     at org.eclipse.ui.internal.PartStack.add(PartStack.java:485) 
     at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:112) 
     at org.eclipse.ui.internal.EditorSashContainer.addEditor(EditorSashContainer.java:63) 
     at org.eclipse.ui.internal.EditorAreaHelper.addToLayout(EditorAreaHelper.java:217) 
     at org.eclipse.ui.internal.EditorAreaHelper.addEditor(EditorAreaHelper.java:207) 
     at org.eclipse.ui.internal.EditorManager.createEditorTab(EditorManager.java:774) 
     at org.eclipse.ui.internal.EditorManager.openEditorFromDescriptor(EditorManager.java:673) 
     at org.eclipse.ui.internal.EditorManager.openEditor(EditorManager.java:634) 
     at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2737) 
     at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2651) 
     at org.eclipse.ui.internal.WorkbenchPage.access$13(WorkbenchPage.java:2643) 
     at org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.java:2595) 
     at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67) 
     at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2590) 
     at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2574) 
     at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2565) 
     at org.eclipse.ui.ide.IDE.openEditor(IDE.java:644) 
     at org.eclipse.ui.ide.IDE.openEditor(IDE.java:603) 
     at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(EditorUtility.java:286) 
     at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(EditorUtility.java:139) 
     at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:194) 
     at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:175) 
     at org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun(SelectionDispatchAction.java:268) 
     at org.eclipse.jdt.ui.actions.SelectionDispatchAction.run(SelectionDispatchAction.java:244) 
     at org.eclipse.jdt.internal.ui.packageview.PackageExplorerActionGroup.handleOpen(PackageExplorerActionGroup.java:316)
     at org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart$5.open(PackageExplorerPart.java:613) 
     at org.eclipse.jface.viewers.StructuredViewer$2.run(StructuredViewer.java:820) 
     at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37) 
     at org.eclipse.core.runtime.Platform.run(Platform.java:857) 
     at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:46) 
     at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:199) 
     at org.eclipse.jface.viewers.StructuredViewer.fireOpen(StructuredViewer.java:818) 
     at org.eclipse.jface.viewers.StructuredViewer.handleOpen(StructuredViewer.java:1079) 
     at org.eclipse.jface.viewers.StructuredViewer$6.handleOpen(StructuredViewer.java:1183) 
     at org.eclipse.jface.util.OpenStrategy.fireOpenEvent(OpenStrategy.java:263) 
     at org.eclipse.jface.util.OpenStrategy.access$2(OpenStrategy.java:257) 
     at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:297) 
     at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66) 
     at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:938) 
     at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3682) 
     at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3293) 
     at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2389) 
     at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2353) 
     at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2219) 
     at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:466) 
     at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:289) 
     at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:461) 
     at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) 
     at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:106) 
     at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:169) 
     at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106) 
     at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76) 
     at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:363) 
     at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:176) 
     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:508) 
     at org.eclipse.equinox.launcher.Main.basicRun(Main.java:447) 
     at org.eclipse.equinox.launcher.Main.run(Main.java:1173) 
     at org.eclipse.equinox.launcher.Main.main(Main.java:1148)

看到"org.eclipse.ui.PartInitException: Project newsjq is not configured as a MyEclipse Web-Struts Project. Therefore the MyEclipse Struts Editor may not be used with struts-config.xml. The default XML Editor has been used to open the file instead."这行错误提示,还以为默认编辑器被修改了,于是重新将它设成默认编辑器,结果还是不行.

后来仔细对比了一下手动加入Struts包的项目与[右键单击工程,选择MyEclipse-> add Struts capabilities]加入Struts的项目比较,发现他们在项目的文件里有一点点的差别,那就是在在项目下的.project文件里少了一行代码<nature>com.genuitec.eclipse.cross.easystruts.eclipse.easystrutsnature</nature>, 把这个加上去,就OK 了.

最后总结出修改办法,如下:

    解决办法一:,在项目下的.project文件里添加一行代码<nature>com.genuitec.eclipse.cross.easystruts.eclipse.easystrutsnature</nature>,结果如下

    </projectDescription> 
    ...... 
     </natures> 
     ...... 
      <nature>com.genuitec.eclipse.cross.easystruts.eclipse.easystrutsnature</nature> 
     </natures> 
    </projectDescription> 
    刷新工程就可以正常打开了

    解决办法二: 
    右键单击工程,选择MyEclipse-> add Struts capabilities

-------------------------------------------------------------------------------- 
我在按步骤操作自己的project时,却发现不行,思考后,发现自己的project同时没有加入Web-project特性,这就是原因。 
这怎么办呢?添加web-project特性就行了,此时,又一个问题:默认为WebRoot,而我的却为web,在添加web-project特性时修改一下就ok了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值