2010年11月6日土曜日

groovyとApache ClickでHello Worldを作成する

groovyとApache ClickでHello Worldを作成するには、以下の手順を実行します。

1.ページクラスの作成
./src/com/blogspot/groovyarekore/clickフォルダにファイルを作成
HelloWorld.groovy
package com.blogspot.groovyarekore.click

import org.apache.click.*

class HelloWorld extends Page
{
public HelloWorld()
{
addModel("now", new Date())
}
}

2.HTMLページの作成
./resource/フォルダに以下のHTMLファイルを作成
hello-world.htm
<html>
<head><title>hello world</title></head>
<body>
Hello World, $now
</body>
</html>

3.web.xmlの作成
./resource/WEB-INF/フォルダにweb.xmlファイルを作成
web.xml
<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">

<display-name>hello world</display-name>
<servlet>
<servlet-name>ClickServlet</servlet-name>
<servlet-class>org.apache.click.ClickServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>ClickServlet</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>

</web-app>

4.click.xmlの作成
./resource/WEB-INF/フォルダにclick.xmlファイルを作成
click.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<click-app charset="UTF-8">
<pages package="com.blogspot.groovyarekore.click" />
</click-app>

5.必要なjarの用意
以下のURLからApache Clickをダウンロード
http://click.apache.org/
click-2.2.0.zipを解凍して、click-2.2.0.jarを./resource/WEB-INF/libディレクトリにコピー。
6.gantファイルの作成
カレントディレクトリでbuild.gantファイルを以下の内容で作成
build.gant
sourceDir = 'src'
buildDir = 'build'
stagingDir = 'stage'
deployDir = 'C:/Program Files/Apache Software Foundation/Tomcat 7.0/webapps'
groovyDir = 'C:/Program Files/Groovy/Groovy-1.7.5'
warFile = 'helloworld.war'

ant.taskdef(name : 'groovyc', classname:'org.codehaus.groovy.ant.Groovyc')

target(compile:'compile groovy files.'){
mkdir(dir:buildDir)
def cpath = path {
pathelement(location: "./resource/WEB-INF/lib/click-2.2.0.jar")
}
groovyc(srcdir:sourceDir, destdir:buildDir,
classpath: cpath)
}

target(war:'packaging'){
depends(compile)
mkdir(dir:"${stagingDir}/WEB-INF/classes")
copy(todir:"${stagingDir}/WEB-INF/classes"){
fileset(dir:"${buildDir}/")
}
copy(todir:"${stagingDir}/WEB-INF/lib",
file:"${groovyDir}/lib/groovy-1.7.5.jar")
copy(todir:"${stagingDir}/WEB-INF/lib",
file:"${groovyDir}/lib/asm-3.2.jar")
copy(todir:"${stagingDir}/WEB-INF/lib",
file:"${groovyDir}/lib/antlr-2.7.7.jar")
copy(todir:"${stagingDir}/"){
fileset(dir:"./resource/")
}
jar(destfile:warFile, basedir:stagingDir)
}

target(deploy:'copy war files to webapps'){
depends(war)
copy(todir:deployDir){
fileset(dir:"./", includes:"*.war")
}
}

includeTargets << gant.targets.Clean
cleanPattern << '**/*~'
cleanDirectory << buildDir
cleanDirectory << stagingDir

setDefaultTarget(deploy)


7.ビルド
以下のファイル配置になっていることを確認して、gantコマンドでビルド。
./build.gant
./src/com/blogspot/groovyarekore/click/HelloWorld.groovy
./resource/hello-world.htm
./resource/WEB-INF/web.xml
./resource/WEB-INF/click.xml
./resource/WEB-INF/lib/click-2.2.0.jar

8.Tomcatでの確認
ブラウザでhttp://localhost:8080/helloworld/hello-world.htmにアクセス。

動作環境
JDK6 Update22, Groovy 1.7.5, Apache Click 2.2.0, Apache Tomcat 7.0.4

0 件のコメント:

コメントを投稿