16

私は 2 日間、Eclipse の内部エラーと戦ってきました。Eclipse の最新の Spring Tool Suite エディションを実行しており、既存の Maven プロジェクトのコレクションをインポートしようとしています。これを行うたびに、Eclipse は NullPointerException をスローしますが、[エラー ログ] ビューからスタック トレースを利用できません。Maven プロジェクトを更新するように Eclipse に指示すると (Maven > Update Project)、再び NullPointerException が発生します。今回は、[エラー ログ] ビューに次のスタック トレースが報告されます。

java.lang.NullPointerException
    at org.eclipse.wst.common.componentcore.internal.resources.VirtualResource.getProjectRelativePaths(VirtualResource.java:119)
    at org.eclipse.wst.common.componentcore.internal.resources.VirtualFile.getUnderlyingFiles(VirtualFile.java:104)
    at org.eclipse.wst.common.componentcore.internal.resources.VirtualFile.getUnderlyingResources(VirtualFile.java:93)
    at org.eclipse.wst.common.componentcore.internal.resources.VirtualResource.exists(VirtualResource.java:88)
    at org.eclipse.jst.common.internal.modulecore.util.ManifestUtilities.getNonBinaryComponentManifest(ManifestUtilities.java:124)
    at org.eclipse.jst.common.internal.modulecore.util.ManifestUtilities.getManifest(ManifestUtilities.java:81)
    at org.eclipse.jst.common.internal.modulecore.util.ManifestUtilities.getManifestClasspath(ManifestUtilities.java:147)
    at org.eclipse.jst.j2ee.componentcore.J2EEModuleVirtualComponent.getManifestClasspath(J2EEModuleVirtualComponent.java:248)
    at org.eclipse.jst.j2ee.componentcore.J2EEModuleVirtualComponent.calculateManifestReferences(J2EEModuleVirtualComponent.java:368)
    at org.eclipse.jst.j2ee.componentcore.J2EEModuleVirtualComponent.cacheManifestReferences(J2EEModuleVirtualComponent.java:360)
    at org.eclipse.jst.j2ee.componentcore.J2EEModuleVirtualComponent.getReferences(J2EEModuleVirtualComponent.java:176)
    at org.eclipse.jst.j2ee.componentcore.J2EEModuleVirtualComponent.getReferences(J2EEModuleVirtualComponent.java:214)
    at org.eclipse.jst.j2ee.componentcore.J2EEModuleVirtualComponent.getReferences(J2EEModuleVirtualComponent.java:207)
    at org.eclipse.m2e.wtp.WebProjectConfiguratorDelegate.configureClasspath(WebProjectConfiguratorDelegate.java:386)
    at org.eclipse.m2e.wtp.WTPProjectConfigurator.configureClasspath(WTPProjectConfigurator.java:107)
    at org.eclipse.m2e.jdt.internal.DefaultClasspathManagerDelegate.populateClasspath(DefaultClasspathManagerDelegate.java:61)
    at org.eclipse.m2e.jdt.internal.BuildPathManager.getClasspath(BuildPathManager.java:253)
    at org.eclipse.m2e.jdt.internal.BuildPathManager.getClasspath(BuildPathManager.java:363)
    at org.eclipse.m2e.jdt.internal.BuildPathManager.getClasspath(BuildPathManager.java:343)
    at org.eclipse.m2e.jdt.internal.BuildPathManager.getClasspath(BuildPathManager.java:371)
    at org.eclipse.m2e.jdt.internal.BuildPathManager.updateClasspath(BuildPathManager.java:191)
    at org.eclipse.m2e.jdt.internal.BuildPathManager.mavenProjectChanged(BuildPathManager.java:180)
    at org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager.notifyProjectChangeListeners(ProjectRegistryManager.java:746)
    at org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager.applyMutableProjectRegistry(ProjectRegistryManager.java:865)
    at org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager.refresh(ProjectRegistryManager.java:289)
    at org.eclipse.m2e.core.internal.project.ProjectConfigurationManager.updateProjectConfiguration0(ProjectConfigurationManager.java:369)
    at org.eclipse.m2e.core.internal.project.ProjectConfigurationManager$2.call(ProjectConfigurationManager.java:316)
    at org.eclipse.m2e.core.internal.project.ProjectConfigurationManager$2.call(ProjectConfigurationManager.java:1)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:161)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:137)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:89)
    at org.eclipse.m2e.core.internal.embedder.MavenImpl.execute(MavenImpl.java:1301)
    at org.eclipse.m2e.core.internal.project.ProjectConfigurationManager.updateProjectConfiguration(ProjectConfigurationManager.java:313)
    at org.eclipse.m2e.core.ui.internal.UpdateMavenProjectJob.runInWorkspace(UpdateMavenProjectJob.java:77)
    at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)

これが私が試したことです:

  • ワークスペースを吹き飛ばして、新しいワークスペースを作成しました。複数回。
  • Maven リポジトリを吹き飛ばして再作成しました。
  • Spring Tool Suite を再インストールしました。
  • Eclipse に Maven リポジトリーの更新を依頼してみました。
  • ローカルの SVN リポジトリでマージの競合を確認しました。(何もありません。これは、新しくチェックアウトされたトランクからの真新しいブランチです。)
  • Eclipse の Synchronize ビューをチェックして、相違点があるかどうかを確認しました。(Eclipse は、同期可能なプロジェクトを認識するのに十分ではありません。)
  • VirtualResource.getProjectRelativePaths() で発生する NullPointerExceptions を Google で検索しました。他の非常によく似た場所で NullPointerExceptions を見つけました。それらの推奨事項を試してみましたが、どれも機能しません。

私はこの問題で頭がいっぱいです。助けて、オビ=ワン・ケノービ、あなたは私の唯一の希望です。

4

6 に答える 6

2

echinelli が指摘したように、これは Eclipse (または STS) のバグであることが判明しましたが、最新バージョンをインストールしても修正されません。そのバージョンが既にインストールされているからです。Eclipse 4.x に基づいて STS をインストールしました。それをアンインストールして 3.x バージョンにすると、問題はなくなりました。

于 2013-11-05T17:10:58.867 に答える
0

わかりました、もっとあいまいな理由で同じ問題がありました。

私は、コメントアウトしたさらに別のMavenの問題を修正しようとする過程で使用pluginExecutionしましたaspectj-maven-plugin<action><execute><execute></action>

これはにつながりnullpointerexceptionます。

于 2014-04-04T18:20:08.160 に答える
0

<build>POMに「maven-compiler-plugin」アーティファクトを含むセクションを追加して解決しました。それがないと、Eclipse がjava.lang.NullPointerException.

于 2019-06-12T10:02:16.353 に答える