2

친절하게 도와주세요. 이미지를 저장하기 위해 BLOB 저장소를 사용하고 있으며 내 로컬 환경에서 완벽하게 작동합니다. 나는 동일한 코드를 클라우드를 배포 할 때 그러나 그것은 나에게 예외를 던지고있다 : java.lang.NoClassDefFoundError가 : COM/구글 /에서 appengine/API/Blob 저장소/BlobstoreServiceFactory 내가GAE : java.lang.NoClassDefFoundError : com/google/appengine/api/blobstore/BlobstoreServiceFactory

답변

1

대부분의 경우 GAE 1.8.4을 사용하고

, 폴더에 appengine-api.jar이 없습니다.

Eclipse를 사용하는 경우 문제 탭을 클릭하십시오. 서버에서이 jar을 사용할 수 없다는 경고가 표시 될 수 있습니다. 이 경고를 마우스 오른쪽 버튼으로 클릭하고 QuickFix를 선택하고 "복사 ..."옵션을 선택하십시오. 또는이 jar를 수동으로이 디렉토리에 복사하십시오.

+0

안녕하세요 @Andrei, 저는 maven을 사용하고 있습니다. pom.xml 파일에 의존성을 부여해야합니까? – Archit

+0

지금 막 내 WEB-INF/lib /를 확인했으며 거기에 appengine-api-1.0-sdk-1.8.4.jar 파일이 있습니다. 그리고 아무 경고도 없다. – Archit

+0

발견 한 jar와 appengine-api.jar가 있어야합니다. –

0

내 경우에는 필요한 jar가 WEB-INF/lib 폴더 안에 있었지만 오류가 여전히 발생했습니다 ... Jetty 9가 시작 프로세스를로드하는 중 아직 완료되지 않았기 때문에이 오류가 발생하는 것으로 나타났습니다. 내 초기화 클래스는 BlobstoreService을 요구했다 :

public class InitializeAppContextListener implements ServletContextListener { 

    private BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService(); 

그래서 나는 상황이 완전히 다음과 같이로드되면 예를 변수 초기화를 연기했다 :
public class InitializeAppContextListener implements ServletContextListener { 
    private BlobstoreService blobstoreService; 

    public void contextInitialized(ServletContextEvent event) { 
     blobstoreService = BlobstoreServiceFactory.getBlobstoreService(); 

그런 다음 웹 애플리케이션이 다시 정상적으로 시작 할 수 있었다. 이 새로운 동작은 JDK 1.8을 사용하여 servlet-api 2.5에서 3.1로 업그레이드 한 후에 나타났습니다 ...

관련 문제