본문 바로가기

Lecture & Tip/javascript[자바스크립트]

Google Web Toolket + Google App Engine 맨땅에 헤딩하기.

GWT + GAE 를 써보겠다고 이전부터 책도 사고 이것 저것 뉴스그룹 등만 뒤적이다가.

근래에 숨돌릴 수 있는 틈이 생겨서 한번 제대로 헤딩해보기로 했다.

이전에도 몇 번 Beta로 서비스 될때 Sample Project 생성해서 그 위에서 투닥여서 사용한 적은 있지만,
이번에는 Empty Project로 시작해서 맨땅에 해딩해보자~

맨땅 헤딩 Start! 
----------------------------------------------------------

역시 맨땅 헤딩의 시작은 "Hello World!" 

Eclipse에서 GAE Plugin을 설치하고(어떻게 설치하는지는 생략! 참조 : http://code.google.com/appengine/docs/)
Project를 생성한다( Google >Web Application Project ). 과감하게 Sample은 uncheck 하고 Finish!

눈앞에는 빈깡통 프로젝트가 생겨나는데 완전 빈깡통은 아니고 기본적인 GWT, GAE library들과 기본적인 configuration file들이 포함되서 생성된다.

그냥 바로 Run 해본다. ㅋㅋ 

Missing required argument 'module[s]' 


주옥같은 애러가 바로 표시된다. ㅋ

이것은 GWT실행을 위한 Module Class가 없다는 것. 당연하다 src안에 아무것도 없으니까 ㅋ

빈깡통 StudyGWT Class를 하나 만들어준다. 여기에서는 내 프로젝트명 (StudyGWT)을 기준으로 설명 ㅋ

그리고 다시 Run!

[ERROR] Unable to find 'com/nurinamu/study/gwt/StudyGWT.gwt.xml' on your classpath; could be a typo, or maybe you forgot to include a classpath entry for source?

어익후 신난다~ 또 뭔가가 떴네. 2가지 문제가 발생했다.

StudyGWT.gwt.xml이 없거나 Entry 가 포함이 안되었다는데. 난 Entry를 만든적이 없으니.

일단 빈깡통 StudyGWT class를 EntryPoint Interface를 상속하도록 변경한다.

그리고 다시 Run! 하지만 다시 같은 애러. Entry는 생성하였지만 StudyGWT.gwt.xml이 없다.

이것이 Emtpy Project생성시에 자동으로 라도 만들어지면 좋았겠지만 왜 안만들어지는 모르겠다.

그래서 결국 Hello포함된 프로젝트에서 업어와서 아래 태그만 수정
(실제 gwt.xml의 doctype은 찾지를 못했고 GWT project사이트의 Issue란에서 URL discussion만 봤고 아직 실제 url을 못봤다;; Tutorial에서도 DTD의 언급은 안보이는군.)
<entry-point class='com.nurinamu.study.gwt.StudyGWT'/>
그리고 다시 Run!
 
그러면 Console에서 뭔가 Server가 동작하는 듯 메세지들이 찍히고 http://localhost:8888 에서 실행되었다고 찍힌다.

그럼 실행되었다니 웹브라우저에서 열어본다.

HTTP ERROR 403

Problem accessing /. Reason:

    FORBIDDEN
멋진 403 애러 뜬다. ㅋ

왜 이럴까 찾아보면 Console msg에 답이 있다. 

[WARN] No startup URLs supplied and no plausible ones found -- use -startupUrl
 
 startupUrl을 argument로 안주어서 ㅋ 거기에다 아직 html 페이지가 하나도 작성되지 않았다.

war폴더 아래에 index.html을 하나 생성해서 "Hello World!" 작성해서 저장한다.

그리고 "http://localhost:8888/index.html"을 browser에 치면!

짜잔 하고 "Hello World!"가 반겨준다.

깔끔한 마지막 마무리를 위해 WARN에서 알려준 startupUrl을 argument로 추가한다.

-startupUrl index.html
다시 Project를 실행하고 "http://localhost:8888"로 접속을 하면 

알흠다운 "Hello World!"가 출력된다.

자 이제 문을 열었으니 다음은 GWT로 간단 예제를 해보도록하쟈!!