2012-03-14 4 views
3

Google 애플리케이션 엔진 프레임 워크 및 서비스를 배우는 중이며 자습서 자체를 Google 홈페이지의 "docs"아래에 제공합니다.Google App Engine : ClassNotFoundException은 배포 후 로컬 서버에서 제대로 실행됩니다.

자습서는 매우 간단합니다. 사용자의 인사말을 저장하기 위해 데이터 저장소를 사용하는 방명록 웹 앱을 만듭니다. 나는이 튜토리얼에서 모든 것을 손으로했으며 모든 것이 마치 그들이 말하는 것처럼했다. 그것은 일식에서 그것을 실행할 때 잘 작동합니다. 에러가 없습니다.

그래서 어려운 예제로 이동하기 전에 실행하기 만하면 오류 ("배포 성공")가 있지만 오류는 500 번 발생합니다. 로그를 확인하면 "java.lang.ClassNotFoundException : guestbook.SignGuestbookServlet "이 앱에서 유일한 서블릿으로, 내 시스템에서 제대로 실행되는 이유는 무엇입니까?

web.xml의 매핑은 (Google과 마찬가지로) 올바르며 appengine-web.xml에는 응용 프로그램 이름이 있습니다. 그것은 무엇 일 수 있는가? 사전에 감사합니다.

편집 : 이제 나는 바보가된다. 외관상으로는 나는 배치하기 전에 건설해야한다, 나는 deply 절차가 저를위한 처음부터 모두를 건설 할 것이라는 점을 생각했다, 나가 틀렸다는 것을 짐작하십시오. 아무도 낭비하지 않아서 미안 하네. 언젠가 언젠가 그것은 같은 문제를 가진 누군가를 도울 수 있기를 바랍니다.

+0

대답에 대해 전체 스택 추적 –

답변

2

한 번 같은 문제가있었습니다. 내가 기억 하기론 나는 전쟁 파일에 의존성을 추가하는 것을 용서했다. 로컬 서버에는 클래스 경로가 있지만 appengine 서버에는 jar 파일이 없으므로 ClassNotFoundException이 발생합니다.

그래서 전쟁에 포함 된 항아리를 확인해야 할 수도 있습니다.

+0

을 붙여 주실 수 있습니까? 그래서 내가 가진 유일한 .java SignGuestbookServlet.java라는 하나의 서블릿, 나는 그것을 전쟁 폴더에 복사하려고 노력하지 않았다. 나는 guestbook.SignGuestbookServlet가 여전히 작동하지 않는 web.xml 파일 (war 폴더 내부의 its)에 매핑했다. 나는 외부/.jar 파일을 제외하고는 어떤 외부 .jar 파일도 사용하지 않는다. 그것은 war/lib 폴더 안에있다. classpath를 추가하기 위해 편집해야하는 다른 파일이 있습니까? 어쩌면 appengine-web.xml? 대부분 비어 있습니다 (자동 생성 된 것이 었습니다). – sap

+1

귀하의 문제는 다를 수 있으며 답변은 매우 일반적입니다. –

2

이클립스에서 실행 문제는 이클립스가 모든 것을 넣고 부엌 싱크가 클래스 패스에 들어가는 것이다.

배포 WAR 파일을 폭발시키고 WEB-INF/classes 및 WEB-INF/lib를 검사하고 .class 파일이 있는지 확인하는 것이 좋습니다.

1

나는 똑같은 문제가 있었는데, appcfg가 잘못된 WEB-INF가있는 디렉토리를 지적했다는 것을 깨달았다.

appcfg를 소스 WEB-INF가 아니라 대상 WEB-INF (예 : mvn 패키지에서 생성 된 WEB-INF, 클래스/및 lib /가 포함 된 것)로 지정하지 마십시오.