0

문제없이 작동하는 Eclipse의 GAE 프로젝트가 있습니다. 최근에 Google Cloud SDK 179.0.0 및 Eclipse Oxygen.1a Release (4.7.1a)로 업그레이드되었으며 현재 프로젝트를 열면 javax.servlet.http 패키지의 클래스에서 경로 오류를 빌드하고 있습니다. 특히, 다음과 같은 클래스가 내 프로젝트의 빌드 경로에서 누락되었습니다. 다음 명령을 사용하여 콘솔에서 이클립스를 시작하면Eclipse Oxygen 및 Google Cloud 도구 빌드 경로에 누락 된 javax.servlet 클래스

javax.servlet.ServletContext 
javax.servlet.http.HttpServlet 

(이클립스이/응용 프로그램 폴더에 설치됩니다 가정) :

cd /Applications/Eclipse.app/Contents/MacOS 
./eclipse 

그리고 당신은 터미널 창을보고, 당신은 무리를 볼 수 있습니다 스택의 다음과 같은 추적 :

설치된 Google 클라우드 SDK의 179.0 버전으로
Nov 10, 2017 9:24:57 AM com.google.cloud.tools.eclipse.appengine.localserver.ServletClasspathProvider doResolveClasspathContainer 
WARNING: Failed to initialize libraries 
org.eclipse.core.runtime.CoreException: Could not resolve artifact com.google.appengine:appengine-api-1.0-sdk:jar:1.9.57 
    at org.eclipse.m2e.core.internal.embedder.MavenImpl$5.call(MavenImpl.java:776) 
    at org.eclipse.m2e.core.internal.embedder.MavenImpl$5.call(MavenImpl.java:1) 
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:177) 
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:151) 
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:99) 
    at org.eclipse.m2e.core.internal.embedder.MavenImpl.resolve(MavenImpl.java:743) 
    at org.eclipse.m2e.core.internal.embedder.MavenImpl.resolve(MavenImpl.java:720) 
    at com.google.cloud.tools.eclipse.util.MavenUtils.resolveArtifact(MavenUtils.java:69) 
    at com.google.cloud.tools.eclipse.appengine.libraries.repository.MavenHelper.resolveArtifact(MavenHelper.java:46) 
    at com.google.cloud.tools.eclipse.appengine.libraries.repository.M2RepositoryService.resolveArtifact(M2RepositoryService.java:50) 
    at com.google.cloud.tools.eclipse.appengine.libraries.repository.LibraryClasspathContainerResolverService.resolveLibraryFileAttachSourceSync(LibraryClasspathContainerResolverService.java:245) 
    at com.google.cloud.tools.eclipse.appengine.libraries.repository.LibraryClasspathContainerResolverService.resolveLibraryAttachSourcesSync(LibraryClasspathContainerResolverService.java:106) 
    at com.google.cloud.tools.eclipse.appengine.localserver.ServletClasspathProvider.doResolveClasspathContainer(ServletClasspathProvider.java:100) 
    at com.google.cloud.tools.eclipse.appengine.localserver.ServletClasspathProvider.resolveClasspathContainer(ServletClasspathProvider.java:79) 
    at org.eclipse.jst.server.core.RuntimeClasspathProviderDelegate.resolveClasspathContainerImpl(RuntimeClasspathProviderDelegate.java:135) 
    at org.eclipse.jst.server.core.internal.RuntimeClasspathProviderWrapper.resolveClasspathContainerImpl(RuntimeClasspathProviderWrapper.java:155) 
    at org.eclipse.jst.server.core.internal.RuntimeClasspathContainer.getClasspathEntries(RuntimeClasspathContainer.java:77) 
    at org.eclipse.jdt.internal.core.JavaProject.resolveClasspath(JavaProject.java:2693) 
    at org.eclipse.jdt.internal.core.JavaProject.resolveClasspath(JavaProject.java:2851) 
    at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath(JavaProject.java:1956) 
    at org.eclipse.jdt.internal.core.ExternalFolderChange.updateExternalFoldersIfNecessary(ExternalFolderChange.java:39) 
    at org.eclipse.jdt.internal.core.ChangeClasspathOperation.classpathChanged(ChangeClasspathOperation.java:59) 
    at org.eclipse.jdt.internal.core.SetContainerOperation.executeOperation(SetContainerOperation.java:111) 
    at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:724) 
    at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2240) 
    at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2267) 
    at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:795) 
    at org.eclipse.jdt.internal.core.JavaModelManager$10.run(JavaModelManager.java:3001) 
    at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2240) 
    at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2267) 
    at org.eclipse.jdt.internal.core.JavaModelManager.initializeAllContainers(JavaModelManager.java:3017) 
    at org.eclipse.jdt.internal.core.JavaModelManager.getClasspathContainer(JavaModelManager.java:2038) 
    at org.eclipse.jdt.core.JavaCore.getClasspathContainer(JavaCore.java:3497) 
    at org.eclipse.jdt.internal.core.JavaProject.resolveClasspath(JavaProject.java:2687) 
    at org.eclipse.jdt.internal.core.JavaProject.resolveClasspath(JavaProject.java:2851) 
    at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath(JavaProject.java:1956) 
    at org.eclipse.jdt.internal.core.DynamicProjectReferences.getDependentProjects(DynamicProjectReferences.java:34) 
    at org.eclipse.core.internal.resources.ProjectDescription.computeDynamicReferencesForProject(ProjectDescription.java:950) 
    at org.eclipse.core.internal.resources.ProjectDescription.getAllBuildConfigReferences(ProjectDescription.java:265) 
    at org.eclipse.core.internal.resources.ProjectDescription.getAllReferences(ProjectDescription.java:221) 
    at org.eclipse.core.internal.resources.Project.getReferencedProjects(Project.java:469) 
    at org.eclipse.ui.actions.CloseUnrelatedProjectsAction.buildConnectedComponents(CloseUnrelatedProjectsAction.java:78) 
    at org.eclipse.ui.actions.CloseUnrelatedProjectsAction.computeRelated(CloseUnrelatedProjectsAction.java:195) 
    at org.eclipse.ui.actions.CloseUnrelatedProjectsAction.getSelectedResources(CloseUnrelatedProjectsAction.java:211) 
    at org.eclipse.ui.actions.SelectionListenerAction.selectionIsOfType(SelectionListenerAction.java:240) 
    at org.eclipse.ui.actions.CloseResourceAction.updateSelection(CloseResourceAction.java:187) 
    at org.eclipse.ui.actions.BaseSelectionListenerAction.selectionChanged(BaseSelectionListenerAction.java:124) 
    at org.eclipse.ui.internal.navigator.resources.actions.ResourceMgmtActionProvider.updateActionBars(ResourceMgmtActionProvider.java:254) 
    at org.eclipse.ui.internal.navigator.resources.actions.ResourceMgmtActionProvider.fillActionBars(ResourceMgmtActionProvider.java:84) 
    at org.eclipse.ui.navigator.NavigatorActionService$3.run(NavigatorActionService.java:265) 
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) 
    at org.eclipse.ui.navigator.NavigatorActionService.fillActionBars(NavigatorActionService.java:258) 
    at org.eclipse.ui.navigator.CommonNavigatorManager$UpdateActionBarsJob$1.run(CommonNavigatorManager.java:95) 
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) 
    at org.eclipse.ui.navigator.CommonNavigatorManager$UpdateActionBarsJob.runInUIThread(CommonNavigatorManager.java:89) 
    at org.eclipse.ui.progress.UIJob.lambda$0(UIJob.java:95) 
    at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:37) 
    at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:182) 
    at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4033) 
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3700) 
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1155) 
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336) 
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1044) 
    at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153) 
    at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:680) 
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336) 
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:594) 
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148) 
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:151) 
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) 
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) 
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) 
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388) 
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:653) 
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:590) 
    at org.eclipse.equinox.launcher.Main.run(Main.java:1499) 
Contains: Missing com.google.appengine:appengine-api-1.0-sdk:jar:1.9.57 

, 지금 앱 엔진 1.9.59은 1.9.57 대 설치되어 있습니다.

이클립스 경로를 구축

다음 라이브러리가 포함되어

  • 앱 엔진 표준 런타임 [앱 엔진 표준 런타임]
  • EAR 라이브러리
  • JRE 시스템 라이브러리 [JavaSE-1.8]
  • TestNG를
  • 웹 앱 라이브러리

나는 다음 이클립스 출시로이 같은 문제가 발생 (ID 빌드 : 20171005-1200)를

  • 4.7.1a
  • 을 :

    • 4.7.0 (20170620-1800 빌드 ID) 오류 내 프로젝트의 목록 지금 다음과 같은 것이있다 :

      • 는 RequestDispatcher는 프로젝트가 빌드 경로 때문에 내장되지 않은 유형
      • 에 해결 될 수없는 불완전하다. javax.servlet.ServletContext 클래스를 찾을 수 없습니다. 빌드 경로를 수정 한 후이 프로젝트를 빌드하십시오.
      • Java 빌드 경로에서 "javax.servlet.http.HttpServlet"수퍼 클래스를 찾을 수 없습니다.
      • javax.servlet.ServletContext 유형을 확인할 수 없습니다. 필수 .class 파일에서 간접적으로 참조됩니다.

      새 App Engine Standard Edition 프로젝트를 Maven 프로젝트로 생성하면 App Engine API의 1.9.57 버전에 대한 종속성이 지정됩니다.

      <dependency> 
          <groupId>com.google.appengine</groupId> 
          <artifactId>appengine-api-1.0-sdk</artifactId> 
          <version>1.9.57</version> 
          <scope>provided</scope> 
      </dependency> 
      

      작성은 "GoogleCloudPlatform/구글 클라우드 일식을"프로젝트에서 GitHub의에이 문제에 대한 문제 # 2754은.

      https://github.com/GoogleCloudPlatform/google-cloud-eclipse/issues/2574


      버전 정보

      • 이클립스 Oxygen.1a 릴리스 (4.7.1a 빌드 : 20171005-1200)
      • Google 클라우드 플랫폼 이클립스 4.5 이후 1.4.1.201710261936
      • Google Cloud SDK 179.0.0
      • 알파 2017.09.15
      • 앱 엔진 자바 1.9.59
      • 앱 엔진 파이썬 1.9.62
      • 베타 2017년 9월 15일
      • BQ 2.0.27
      • 핵심 2017년 11월 6일
      • GCD-에뮬레이터 v1beta3- 1.0.0
      • 4.28
      • kubectl
      • pubsub 에뮬레이터 2017년 9월 15일
      • 01,235 인 gsutil
      • 을 gcloud

    답변

    0

    정확한 원인을 모르지만 내 컴퓨터를 재부팅하면이 버그에서보고 된 문제가 해결되었습니다. 이 문제를 해결하는 과정에서 문제를 해결하기 위해 Eclipse를 여러 번 시작하고 시작했습니다. 문제를 해결하기 위해 새로운 터미널 창 세션을 시작했지만 작동하지 않았습니다.

    내 컴퓨터를 완전히 재부팅하면이 버그에서보고 된 문제가 사라졌습니다.