home wiki.fukuchiharuki.me
Menu

Orca

セットアップ

開発環境

Orcaは次の環境で開発しています。Tomcatについては6.0でも動作しますがOrcaのコンパイルは7.0のjavax.servlet.*がないとできません(JBossでも新しい実装であれば大丈夫かと。)

JDK
Java SE Development Kit 6u24
Tomcat
Tomcat 7.0

依存パッケージ

Orcaは次のパッケージに依存しています。

Commons IO
ファイルアップロードに必要です
Commons FileUpload
ファイルアップロードに必要です

ミニマムプロジェクト作成

EclipseでOrcaを動作させる最小のセットアップをします。

プロジェクトを作成する

  1. Dynamic Web Projectを作成します
  2. Orcaと依存パッケージのパスを通します
    • 単発ならそれぞれのjarファイルを次のディレクトリ下に配置するのが良いと思います
      • (プロジェクトルート)/WebContent/WEB-INF/lib/

ページクラス+JSPを作成する

Orcaでは1ページ=1クラス+1JSPです。まずは1ページ分とクラスとJSPを作成します。

まずはクラスからです。

  • HomePage.java
    public class HomePage implements Serializable {
        private static final long serialVersionUID = 1L;
    
        @Index
        public PageTransition index() {
            return new PageTransition().showJsp("/WEB-INF/jsp/HomePage.jsp");
        }
    }

次にJSPを作成します。

  • HomePage.jsp
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><%--
    --%><%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %><%--
     // -------------------------------------------------- [tag library]
    --%><%@ taglib uri="http://fukuchiharuki.me/orca/app/customtag" prefix="o" %><%--
     // -------------------------------------------------- [html]
    --%>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>ホームページ</title>
    </head>
    <body>
      <h1>ホームページ</h1>
    </body>
    </html>

サーブレットを作成する

Orcaではサーブレットはアプリケーション内に唯一存在します。

  • RequestProcessor.java
    public class RequestProcessor extends AbstractRequestProcessor {
        private static final long serialVersionUID = 1L;
    
        public RequestProcessor() {
            super();
            this.registerBookmarkablePage("home", HomePage.class);
        }
    
        @Override
        protected Class<?> getHomePage() {
            return HomePage.class;
        }
    
        @Override
        protected Class<?> getNotFoundPage() {
            return HomePage.class; // 本当はそれ用のページを作成する
        }
    
        @Override
        protected Class<?> getErrorPage() {
            return HomePage.class; // 本当はそれ用のページを作成する
        }
    }

次にサーブレットマッピングを設定します。

  • /WebContent/WEB-INF/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">
    
        ・・・
     
        <servlet>
            <servlet-name>RequestProcessor</servlet-name>
            <servlet-class>(上記サーブレットのパッケージ).RequestProcessor</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>RequestProcessor</servlet-name>
            <url-pattern>/</url-pattern>
        </servlet-mapping>
     
    </web-app>

確認

ミニマムの構成

最終的にはこんな感じになっています(src下のパッケージ名は任意。)

(プロジェクトルート)
┣ src
┃┣ me.fukuchiharuki.sample.page
┃┃┗ HomePage.java
┃┗ me.fukuchiharuki.sample.servlet
┃  ┗ RequestProcessor.java
┣ ・・・
┗ WebContent
  ┗ WEB-INF
    ┣ jsp
    ┃┗ HomePage.jsp
    ┣ lib 
    ┃┣ commons-fileupload-1.2.2.jar (2011-05-30時点)
    ┃┣ commons-io-2.0.1.jar (2011-05-30時点)
    ┃┗ Orca-1.0-beta-1.jar (2011-05-30時点)
    ┗ web.xml

動作確認

ブラウザで次のURLにアクセスして「ホームページ」と表示されたら正常に動作しています。

  • ttp://localhost:8080/(プロジェクト名)/