a mircro Groovy web framework
https://github.com/bleedingwolf/Ratpack
License : Apache License, Version 2.0
groovy 하면 RoR에 영감을 얻었다는 grails가 떠오르지만.. 마찬가지로 Sinatra 에 영향을 받은 Ratpack 이라는 경량 web framework이 있습니다.
물론 아직 beta 수준이라서 어디 써먹기에는 참 애매하지만... 하여튼 잠깐의 틈을 내서 study.
홈페이지에 간단하게 설치절차가 나와있지만,
eclipse 기반으로 작업할때 어떻게 하면 좋은지에 대한 경험을 기록하고자 합니다.
- Requirements
jdk 1.5 이상?
groovy 1.7.1+
gradle
eclipse , groovy eclipse plugin (option)
- ratpack build
1. 다운로드 받은 ratpack project를 새로운 eclipse groovy project로 생성하고나서 복사합니다.
2. gradle buildDistro 를 실행
cf) [gradle] Using Gradle from Ant (via gradlew) 글을 이용하여 ant build 파일을 이용해 돌릴 수 도 있습니다.
3. build/libs 위치에 library 들이 모두 생성되었는지 확인되면 OK.
- make ratpack project
1. eclipse에서 dynamic web project로 HelloRatpack 을 생성.
2. $webapp/WEB-INF/lib 에 위에서 생성한 build/libs 의 모든 jar 를 복사.
cf) except servlet-*.jar , jetty-*.jar
3. web.xml 에 servlet 을 등록
<servlet>
<servlet-name>Ratpack</servlet-name>
<servlet-class>com.bleedingwolf.ratpack.RatpackServlet</servlet-class><init-param><param-name>app-script-filename</param-name><param-value>hello.groovy</param-value><!-- WEB-INF/lib/xxx.groovy --></init-param></servlet><servlet-mapping><servlet-name>Ratpack</servlet-name><url-pattern>*</url-pattern></servlet-mapping>
class RatpackExtendServlet extends RatpackServlet{void init() {if(app == null) {def appScriptName = getServletConfig().getInitParameter("app-script-filename")def fullScriptPath = getServletContext().getRealPath("WEB-INF/${appScriptName}")app = new RatpackApp()app.prepareScriptForExecutionOnApp( fullScriptPath )}mimetypesFileTypeMap.addMimeTypes(this.class.getResourceAsStream('mime.types').text)}}}
<servlet-class>com.yourcompany.yourpkgname.RatpackExtendServlet</servlet-class><param-value>ratpack/hello.groovy</param-value><!-- WEB-INF/ratpack/hello.groovy -->
hello.groovy 파일이 바로 ratapck application
기타. 에러페이지는 다음과 같습니다. ( def x = 1 /0 ; 을 실행하게 했음. )