java

MANIFEST.MFのCLASS-PATH

設定用のプロパティファイルをよくWEB-INF/confに入れたりするんですが、そうするとJavaクラスからはパス指定でアクセスすることになります。 もし、WEB-INF/confにクラスパスを通すことができれば、パスを意識しなくていいなぁと思いました。 でも、起動時…

遅ればせながら「Struts in Action」

今更ながらですが、買いました。最近プレゼンテーションフレームワークの比較検討をしてるんですが、結局判断基準はStrutsかなと。そのStrutsも断片的な知識しかなくてぜんぜんダメダメなので、各所で評判のStruts in Actionを読んで勉強しようと思いまして…

もう一冊「達人プログラマ」

これも今更ながらですが、未読だったので買いました。通勤電車で読もうかな。 達人プログラマー―システム開発の職人から名匠への道作者: アンドリューハント,デビッドトーマス,Andrew Hunt,David Thomas,村上雅章出版社/メーカー: ピアソンエデュケーション…

jsp-property-group

JSP2.0から導入されたという機能を試したかったんですが、全く機能しません。 最新のTomcat5.5.12で試してるんですが…。 <jsp-config> <jsp-property-group> <description>Special property group for JSP Configuration JSP example.</description> <display-name>JSPConfiguration</display-name> <url-pattern>*.jsp</url-pattern> <el-ignored>true</el-ignored> </jsp-property-group></jsp-config>

Jarに対するAspectAutoRegist

って、まだ対応してないだけなんですね。 "org.seasar.struts"になんでaspectがかからないんだーって悩んじゃいました。 さっきS2.3RC2のorg.seasar.framework.container.autoregistパッケージ配下の構成を見て気づきました。 JarComponentAutoRegisterが増…

S2Strutsの処理概要

ちょっと独自ルールで実行時のActionを切り替えたり、ActionMappingを差し替えたりしたいので、仕組みを追ってみました。 Struts経験が浅いので一部言っていることが怪しいかもしれないですが、大枠はそれほど外してないと思います。 ↓ 目的 一応、以下を実…

S2.3RC1の自動登録での怪しい挙動

別のパッケージに同じ名前のクラス名があるときに、org.seasar.framework.container.autoregister.DefaultAutoNamingでコンポーネント名を自動解決すると、バッティングしてコンポーネント登録に失敗するようです。 登録時にエラーにならず、コンポーネント…

S2Struts「拡張子」の英単語スペル

struts-config.xmlで、viewExtentionという属性があります。 htmlとかjspとかの拡張子をカンマ区切りで指定する属性ですね。で、綴りです。よくあるtypoのようですが、extensionが正解らしいです。「s」。 extentionではないと。 大きな問題ではないですが、…

WebアプリにおけるLog4jのログファイル出力先の指定方法

かなり前に悩んでたこと。単なる相対パスだとuser.dirが基点になるため、Tomcat起動方法によって実際のファイルパスが異なってしまいます。 開発環境でEclipseから起動したらECLIIPSE_HOMEが基点に。 直接Tomcatのbin/start.batを叩いたら、TOMCAT_HOME/bin…

S2Struts1.2の無設定カスタマイズ

無設定部分カスタマイズの要のZeroConfigActionRuleとZeroConfigActionFormRule。 適当にいじりながら、id:yuki_neko_nyanさんのダイアリーも読んででお勉強。 大体見えてきました。Actionに対する各種属性を解決するクラスであるZeroConfigActionRuleが一番…

S2Struts1.2EA2突入

というわけで、S2Strutsです。 id:yuki_neko_nyanさんの[Seasarする] - 猫的怠惰Daysを参考にまずはとっかかりを、と思ってたらいきなり問題に遭遇。今のS2Struts1.2EA2実装ってSeasar4 EA1を前提に実装されているみたいで、こないだ出たS2.3RC1だとエラーが…

無念

諸事情によりJSF路線をあきらめることにしました。 大きな理由は URLでページのディレクトリ階層構造を全部そのまま正直に表示されては困る MyFacesの動作がちょっと不安 ですかね。 POJOを使った仕組みなんか結構気に入ってたんですが。 実装が熟すまで待ち…

Aspectをメソッドに適用できるように

いいかげんな改造。本体じゃなくてS2Tiger側で。 org.seasar.framework.container.annotation.Aspect @Retention(RetentionPolicy.RUNTIME) @Target( { ElementType.TYPE, ElementType.METHOD }) public @interface Aspect { String interceptor(); String p…

Seasar2.3RC1を触ってみる

コンポーネント自動登録、アスペクト一括登録すげー。楽。 クラス名の規約を守ってれば、勝手に登録できるのってホント楽。 アスペクトもいろんなかけかたを簡単に実現できるし。使ってみようとしてちょっとはまった。原因は単純なこと。自動登録を使うとき…

ManagedBeanの作成単位

思わず吹き出した。最高。 443 :デフォルトの名無しさん :2005/08/08(月) 22:36:53 ManagedBeanって画面単位でつくってる? それともユースケース単位? 444 :デフォルトの名無しさん :2005/08/08(月) 23:25:54 気分単位。 うれしいBean たのしいBean か…

ServletFilterとforward処理

JSP2.3までだと、requestにしかfilterがかからない。 JSP2.4からrequestのほかに、forward,include,error時にもfilterをかけることができるようになったようだ。 参考 IBM からのお知らせ : 申し訳ございません。該当するURLのページが見つかりませんでした…

パッケージ構成

DTOがわからんとか、Entityって何よとか、自分の無知ブリを開けっぴろげにさらしてならない今日この頃ですが、僕は元気です。くーすで触れられていたことでまだgoyaとして言及されていない内容についても、今はgoyaと言った方がいいんでしょうかね。よくわか…

S2Daoの結果をS2Unitでテスト

メモ。 RELNOアノテーションのプロパティ名でgroupを指定すると… S2DaoでN:1マッピングをするとき、1側のBeansに「group_RELNO, setGroup(), getGroup()」のようにgroupプロパティを指定したら、 org.seasar.framework.exception.SQLRuntimeException: [ESSR…

JSP記法との同居

一応確認してみた。だめでした。 ちょっとした機能を追加してみたいときでもタグライブラリ作って、m:injectする必要があるみたいです。残念。 <servlet-mapping> <servlet-name>jsp</servlet-name> <url-pattern>*.html</url-pattern> </servlet-mapping>という記述を <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*.html</url-pattern> </servlet-mapping>の前に書い…

エンティティとDTOという対比

くーす/goyaを意識しながらJSF/S2JSFをいじっていてやはり思うのが、エンティティとDTOの違いって?ということです。(ローカル)DTOというのは層またがりの場合に情報を受け渡しするために導入するものですが、くーすの文脈では、「DTO=プレゼンテーションモ…

S2Daoの「Primary keyが見つかりません」エラー

[EDAO0009]のエラーが発生する理由として、 A)DBのテーブルにpkが設定されていない場合 制約をきちんと指定すればOK。 B)PKのカラム名が間違っている (DB側 or JavaBeans側) カラム名をあわせるか、COLUMNアノテーションをかける。 C)テーブル名が間違ってい…

ユーザ情報とかの保持方法

Webアプリだとログインした後、そのユーザ情報をセッションとかに保持しておきますよね。 で、JSFを使ってちょっとサンプルをつくってるときにそれをどうやって実現しようかなー考えてたわけです。 A) 直接HttpSessionに登録して、自力でハンドリング。 B) f…

instance="session"でエラー発生

instance="session" or "request"にすると、以下のエラーが発生する。 [ERROR] 2005-10-02 19:23:03 StandardContext#loadOnStartup() サーブレット /hoge がload()例外を投げました org.seasar.framework.exception.EmptyRuntimeException: [ESSR0007]sessi…

ついにS2JSFに

ついにS2JSFに踏み込むときがやってきた。素のJSFを捨てたのはなぜか?(おおげさ 今のところ、あまり強い思いはないんだけど、とりあえずは以下のような理由。 コンポーネントをFacesContextとS2Containerで2重管理するのはいや。どっちに登録されたっけ?と…

ひがさんのBlogのまとめサイト (8) -FINAL-

くーす編の残りは特に引用するところはなし。 色々あったようですが、とりあえずgoyaとしてこの方向の設計ガイドラインが公開検討されていくようですし、それで僕は十分満足。 今日まで勉強してきたことだって、大変貴重な知識として頭の片隅に入ってるし。 …

ひがさんのBlogのまとめサイト (7)

wikiroom.com 閉鎖 を読んで勉強するシリーズ第7弾 業務ロジック設計 DIContainerのない時代には、登場人物が増えると、それを管理するコストもばかにできないものになります。徹底的に役割に応じてクラスを分割するという手法が現実的になったのは、やはりD…

FacesUtilsとか

パスの問題が解決してすっきりしたので、少しサンプルをベースに遊んでみる。 くーすなパッケージ構成にしてみたり、managed beanをActionとDTOに分けてみたり。 素のJSFなので、FacesContext用のFacesUtilsを作ってみたりと。 Classオブジェクトをkey代わり…

ひがさんのBlogのまとめサイト (6)

wikiroom.com 閉鎖 を読んで勉強するシリーズ第6弾 業務ロジック層 Statelessでやる場合は、実装クラスの生成やDIは、DIContainerがすべて面倒を見てくれます。 こう考えていくと、プレゼンテーション層から最初に呼び出されるクラスは、Statelessにすべきだ…

ひがさんのBlogのまとめサイト (5)

wikiroom.com 閉鎖 を読んで勉強するシリーズ第5弾今日は短めに。 TransactionScript (by Fowler) くーすでは、業務ごとにニーズなんか違うんだから、それぞれの業務ごとに、SELECT文は、最適化したものを使います。ある意味、SQLにロジックが埋め込まれてい…

navigation-ruleのredirect

JSFではリクエストは自分自身のURLに対して行う。 これは現在のページに対応するモデルにパラメータを反映するために必要、ということらしい。 でも、ブラウザのアドレスバーに表示されるURLがおかしいことになりませんか? たとえば、↓。 index.jsp (アドレ…