備忘録 the next generation

2014年末にOCN(http://yamagu.mo-blog.jp)からこちらに移転しました。

Struts2.1のセットアップまで[5]

2009-08-11 13:32:25 | 開発

次にsitemeshの設定。

sitemesh-page.tldとsitemesh-decorator.tldはStruts2のパッケージのshowcaseに含まれるそれらのファイルのコピーがそのまま使えるようだ。

WEB-INF/decorators/main.jspが、共通のレイアウトを決定しているようなので、これを自分のシステム用にカスタマイズして、[myapp]/WEB-INF/decorators/main.jspとして配置する。

sitemeshを使うには、web.xmlにフィルタとtaglibの設定もする。web.xmlに以下の内容を挿入する。(/servlet-mappingの後でresource-refの前)

----

    <filter>
        <filter-name>cleanup</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>
    </filter>
    <filter>
        <filter-name>sitemesh</filter-name>
        <filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class>
    </filter>
    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>cleanup</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <filter-mapping>
        <filter-name>sitemesh</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

<taglib>
    <taglib-uri>sitemesh-page</taglib-uri>
    <taglib-location>/WEB-INF/sitemesh-page.tld</taglib-location>
</taglib>
<taglib>
    <taglib-uri>sitemesh-decorator</taglib-uri>
     <taglib-location>/WEB-INF/sitemesh-decorator.tld</taglib-location>
</taglib>


Struts2.1のセットアップまで[4]

2009-08-11 12:18:14 | 開発

Springの設定。

[myapp]/WEB-INF/applicationContext.xmlを作る。

内容や使い方は以下のページと同様。
http://www.atmarkit.co.jp/fjava/rensai3/springdi01/springdi01_2.html

--例---------
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans default-autowire="autodetect">
    <bean id="bar" class="foo.Bar">
        <property name="message">
            <value>Hello world!</value>
        </property>
    </bean>
</beans>


Struts2.1のセットアップまで[3]

2009-08-10 20:08:47 | 開発

[myapp]/WEB-INF/lib以下に、下記のライブラリをコピーしてきた。

Struts-2.1.6から:

  • commons-fileupload-1.2.1.jar
  • commons-logging-1.0.4.jar
  • commons-validator-1.3.1.jar
  • ognl-2.6.11.jar
  • struts2-core-2.1.6.jar
  • struts2-spring-plugin-2.1.6.jar
  • commons-io-1.3.2.jar
  • commons-logging-api-1.1.jar
  • freemarker-2.3.13.jar
  • sitemesh-2.3.jar
  • struts2-sitemesh-plugin-2.1.6.jar
  • xwork-2.1.2.jar

Spring-2.5.5から:

  • spring-aop.jar
  • spring-context.jar
  • spring-core.jar
  • spring-beans.jar
  • spring-context-support.jar
  • spring.jar

あと、DBのアクセス用にpostgresqlのJDBCドライバを$TOMCAT_HOME/lib以下に。
今回はとりあえずこれでスタート。


Struts2.1のセットアップまで[2]

2009-08-10 17:57:04 | 開発

webapps/[myapp]/META-INFディレクトリを作る。
ここにcontext.xmlを置く。

内容は以下のようなもの。[myapp]はWebアプリケーション名で
[myname]はDBに接続するアカウント名。
以下の例ではDB名とWebアプリケーション名は同一のものにしている。
Realmのような記述をして、DB内の情報による認証に備える。
----
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/[myapp]" docBase="[myapp]"
   debug="1" reloadable="true" crossContext="false">

    <Resource name="jdbc/[myapp]" auth="Container"
        type="javax.sql.DataSource" driverClassName="org.postgresql.Driver"
        url="jdbc:postgresql://localhost:5432/[myapp]"
        username="[myname]" password="" maxActive="20" maxIdle="10"
        maxWait="-1" removeAbandoned="true"/>

    <Realm className="org.apache.catalina.realm.DataSourceRealm" debug="100"
        localDataSource="true"
        dataSourceName="jdbc/[myapp]"
        userTable="tomcat_user" userNameCol="userid" userCredCol="password"
        userRoleTable="tomcat_role" roleNameCol="role" />
</Context>
----

確認すべきポイントは、
reloadable: Servletの自動リロードだろうから開発が完了したらfalseで良いかも
removeAbandoned: 使われていないDBのコネクションを自動的に破棄。
         できればfalseの方がいいんだけど。
userTable: ユーザー情報を格納したテーブル名。
userNameCol: そのユーザ名の入っているカラム名
userCredCol: パスワードの入っているカラム名
userToleTable: ロール(役割)の入っているカラム名
roleNameCol: ロール名の入っているカラム名


Struts2.1のセットアップまで[1]

2009-08-10 17:20:20 | 開発

今日はまずはTomcatのセットアップから。

http://tomcat.apache.org/
からダウンロードできる。これは昔と変わらない。
最新版は6.0.20のようだ。

Linuxで動かすので、zip版をダウンロードして展開。bin/*.shをchmodで555に設定。

バージョンアップしやすいように、リンクにしておくか。
ln -s apache-tomcat-6.0.20 apache-tomcat

8080のポートは別の開発に使っているので、conf/server.xmlを変更しないと
いけない。
1. <Server port="8005" shutdown="SHUTDOWN">の8005を8105に
2. <Connector port="8080" protocol="HTTP/1.1" の8080を8180に、
     redirectPort="8443"の8443を8543に
3. <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
   の8009を8109に、8443を8543に変更。

なんか、変更の必要のない箇所まで変更している気はするが。