AnrdoMDAテンプレートカスタマイズ
移転しました。
テンプレートのカスタマイズ
「AndroMDAカスタマイズガイド 1.5.2」に従ってテンプレートのカスタマイズを行ってみる。
課題となるのは「2.7 テンプレートカスタマイズサンプル」
プロジェクト作成コマンドの選択子は以下のような感じ。
mvn org.andromda.maven.plugins:andromdapp-maven-plugin:generate
j2ee
C:\eclipseWrk\androMDA
Shohu
uml2
Secure JSP
secure_jsp
1.0
secure.jsp.sample
war
postgres
no(jBPM)
3
yes( web interface )
struts
no (Web service)
UMLのモデルを作成して、mvn install した後、
mvn -f web/pom.xml -Ddeploy
でデプロイ。
ここではまった。。
http://localhost:8080/secure_jsp/
を指定してもページが表示されない。
C:\apache-tomcat-5.5.17\conf\Catalina\localhost
にsecure_jsp.xmlのコンテキストファイルも作成されている・・・なぜだ?
いろいろ調べてみると以下のようなアクセスで表示できることがわかった。
http://localhost:8080/secure_jsp/secure_jsp-web-1.0
Tomcat5.5から?
server.xmlのappBase以下に配置したWARや仕様に基づいた形式のフォルダを 配置すれば、自動的にコンテキストと認識し、URLからは http://ホスト名:ポート番号/配置したフォルダ名 でアクセスできると認識しています。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=40342&forum=12&5
らしい。
フォルダ名をさすがにURLにそのまま表示したくなかったため、
context.xml を以下のように作成し
<?xml version="1.0" encoding="UTF-8"?> <Context path="/secure_jsp" docBase="PROJECT_ROOT\web\target\secure_jsp-web-1.0" debug="99" reloadable="false" workDir="PROJECT_ROOT\work" > </Context>
デプロイはせず(CATALINA_HOME/webappsにwarファイルをおかない)
http://localhost:8080/secure_jsp/
で表示できることを確認した。
テンプレートをカスタマイズする まとめ
JSPテンプレート差し替え
PROJECT_ROOT/mda/src/main/config/andromda.xml の BPM4Struts設定プロパティに
「mergeLocation」を追加し値を「custom」と記述する
<namespace name="bpm4struts"> <properties> <property name="forms">${web.generated.dir}</property> <property name="pages">${web.generated.dir}</property> : : <property name="mergeMappingsUri">file:${conf.dir}/mappings/WebMergeMappings.xml</property> <!-- ↓↓↓ ここ ↓↓↓ --> <property name="mergeLocation">custom</property> <!-- ↑↑↑ ここ ↑↑↑ --> : :
PROJECT_ROOT/custom/templates/bpm4struts/pages/main-layout.jsp.vsl
を作成する。
main-layout.jsp.vsl は、andromda-src-3.2.zipを解凍してできたbpm4strutsのカートリッジから持ってくる。
main-layout.jsp.vsl を修正。
スタイルシートファイルをアプリケーション(war)に追加
PROJECT_ROOT/web/src/main/jsp/layout/print_secure.css を作成
本CSSファイルはmain-layout.jsp.vslのlinkタグから参照させる。
インストール
mvn install