作業メモ:Seasar2 JasperReportsを使う(まずはビルドパスから)
JasperReportsを使用する機会に恵まれた為、自宅Macにて環境を整備した。
まず、情報が少ないながらも以下のエントリにて
Seasar2×JasperReports情報があった為、こちらを参考に実施可能です。
JasperReportsを利用してSAStrutsでPDF出力するサンプル - DISってHONEY♪ @gungnir_odin
さて、最低限設定が必要な部分を補足します。
1.JasperReportのデフォルト設定
・言語:Groovy→Javaへ(Groovyな方は、そのままで構いません。)
・初期ユニット:インチ→ピクセル(インチな方は、そのままで構いません。)
2.クラスパスの設定
iText、iTextAsian の jar を設定する。
3.pdf font pathの確認
iText、iTextAsian の jar を確認する。
4.Eclipseの jar 配置先
ライブラリに参考サイトにてダウンロードした jar ファイルを
「WEB/INF/lib/」配下に上記で選択した jar ファイルを配置する。
5.Eclipseのビルドパスの追加
Eclipseのプロジェクトを右クリック、プロパティ、Java のビルド・パスを選択する。
ライブラリに参考サイトにてダウンロードした jar ファイルを選択する。
後は、参考サイトにある様にPDFに日本語を出力させる様にJasperReportsの設定を行い、
Webアプリケーションから出力してみると、無事出力されている事を確認する。
ひとまず、Actionクラスから固定の文字列をPDF出力させる方法は完了。
作業メモ:Oracle DUMPファイルのインポートコマンド
オラクルのDUMPファイルをインポートする場合は、以下のコマンドにてインポートが可能。
<DUMPファイルのインポートコマンド>
imp <ユーザ名>/<パスワード> file=<インポートDUMPファイル> fromuser=<エクスポートユーザ名> touser=<インポートユーザ名> ignore=y grants=n
作業メモ:Seasar2 JDK7でgen-ddlの順序が変わってしまう原因と対応策
<原因>
1.JDK 7を使っている
2.基底クラスを作り、それを継承したエンティティクラスを使っている
3.S2JDBC-Gen の gen-ddl を実行する
<参考>
JDK7でgen-ddlを行うとソート順序が逆になってしまう
http://seasarproject.g.hatena.ne.jp/halflite/?word=*%5BS2JDBC-Gen%5D
<対応>
対応モジュールはコミッターさんがコミット済
https://gist.github.com/nakamura-to/5096537
作業メモ:Oracle インストールと各種設定
Oracleをプロジェクトで使用する機会があった為、毎度躓く導入部分をまとめておく。
まずはORACLE DATABASEのインストール。
導入マシンは32ビットOSであるが、以下のサイトの手順で問題ない為、その通りインストールを行う。
http://knman.sakura.ne.jp/wordpress/?p=1167
さて、インストール後は、各種設定ファイルを修正します。
GUIでも設定は可能ですが、不要な設定までされてしまう為、ファイルを直接修正します。
■ listener.ora(静的構成)<リスナー名> =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = <論理IPアドレス>)(PORT = <ポート番号>))
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = <インストール時に指定したSID>)
(ORACLE_HOME = <オラクルインストールディレクトリ>)
(SID_NAME = <インストール時に指定したSID>)
)
)
■ tnsnames.ora<ネットサービス名> =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = <論理IPアドレス>)(PORT = <ポート番号>))
(CONNECT_DATA = (SID = <インストール時に指定したSID>))
)
■ 接続確認
$ sqlplus /nolog ⇛ 又は、sqlplus <ユーザ名>/<パスワード>@ネットサービス名
$ conn <ユーザ名>/<パスワード>@ネットサービス名
※ sysdba権限でアクセスしたい場合は、ネットサービス名 as sysdbaとすれば良い。
■ オラクルサービスの確認
アクセス出来ない場合は、色々問題がある為、一つづつ片付けていくこと。
まずは、ORACLEサービスが稼働していない事もある為、以下のサービスが稼働中である事を確認する。
1.オラクルデータベースサービス「OracleService
2.リスナーサービス「OracleOraDb11g-home1TNSListener」
■ リスナー状況の確認
$ lsnrctl status
結果が、unknown等であれば、設定ファイルに誤りがある為、以下のサイトで対処する。
http://www.atmarkit.co.jp/ait/articles/0906/15/news095.html
<クライアントマシンの場合>
クライアントの場合、Oracle Clientを導入し、ネットワークツールをインストールする。
その後、tnsnames.oraを該当ディレクトリに配置すれば接続可能になる。
作業メモ:Seasar2 URLパターンを使う
@ExecuteアノテーションのurlPattern属性を指定すれば良い。
<通常の場合>
・TestActionクラスのindexメソッドの場合
⇢ @Execute(validator=false)
public String index() { }
⇢ /test/index
<固定URLの場合>
・TestActionクラスのindexメソッドの場合(固定URLに変更)
⇢ @Execute(validator=false, urlPattern="kotei")
public String index() { }
⇢ /test/kotei
<可変(リクエストパラメータ)の場合>
・TestActionクラスのindexメソッドの場合(可変URLに変更)
public String index() { }
⇢ @Execute(validator=false, urlPattern="{kotei}")
・もう一手間
⇢ アクションフォームクラスに「koteiプロパティ」を用意する。
指定された文字列を受け取ることが出来る。
リクエストパラメータを取得する為に、
アクションクラスに、アクションフォームクラスをDIしてやって、アクションフォームクラスにパラメータを指定する。
作業メモ:Seasar2 セッションの再作成方法について
作成されたセッションを破棄した後、再作成する処理が不明だった為、
色々なサイトを巡った所、以下の掲示板でのやり取りがマッチしていた事から備忘録。
最初はDIされているセッションを破棄した後、
どのタイミングでセッションが作成されるのか不明確だったが、成る程。(メモメモ
引用元:http://ml.seasar.org/archives/seasar-user/2009-May/017429.html
> @Resource
> public HttpSession httpSession;
>
> @Resource
> public HttpServletRequest httpServletRequest;
>
> UserValue userValue = (UserValue) httpSession.getAttribute("UserValue");
> httpSession.invalidate();
> httpSession = httpServletRequest.getSession();
> httpSession .setAttribute("UserValue", userValue);
引用元:http://ml.seasar.org/archives/seasar-user/2009-May/017431.html
> これは [Seasar-user:17333] と同件で,Seasar2.4.35
> 固有の問題です.
> https://www.seasar.org/issues/browse/CONTAINER-361
>
> これより前のバージョンおよび次にリリースされる
> バージョンでは発生しません.
作業メモ:iOS×AWSを試してみる(Part.1)
Android開発において、最低限の触れ合いは先月終わりを迎えた。
結局、凄まじい機種依存を叩き出し、辟易してしまったが、開発して来た事に後悔はない。
むしろ、AWS上にリポジトリを構築したり、Android開発を通じて我武者羅に突き進んできた。
結果は散々であったが、過程は満足している。
次に、私が三年前に手を出し、辞めてしまったiPhone開発に手を出してみたい。
勿論、マネジメントツールの模索は続けるが、iPhoneだって捨てがたい。
丁度開発したいものがあるので、それを試してみたい訳だ。
そして、AWSと絡めた開発がやってみたいのだ。
やりたい事は山ほどある。
ここで立ち止まるわけには、いかないのだ。
以下、参考にするエントリ。
クラウドストレージ「Amazon S3」とiPhone/iPadを直結するSDKとは (1/3):スマートフォンとクラウドをつなぐ技術カタログ(3) - @IT