→Java関連

→JSF(JavaServer Faces)関連

#contents


* 関連Web [#yc679f18]
-http://www.jboss.org/projects/
-http://seamframework.org/
-http://www.jboss.com/products/seam

-[[日本JBossユーザ・グループ>http://www.jbug.jp/cgi-bin/fswiki/wiki.cgi]]


*Document [#p9a27fcd]
-[[JBoss.org Community Documentation(英語)>http://www.jboss.org/docs/]]
--[[JBoss Application Server>http://www.jboss.org/jbossas/docs/]]
---[[Installation Guide>http://www.jboss.org/file-access/default/members/jbossas/freezone/docs/Installation_Guide/beta422/html/index.html]]
--[[JBoss IDE for Eclipse>http://www.jboss.org/jbosside/docs]]

--[[JBoss Seam>http://www.seamframework.org/Documentation]]
---[[JBoss Seam 1.2 API reference>http://docs.jboss.com/seam/1.2.1.GA/api/]]
---[[JBoss Seamドキュメント和訳>http://www.jbug.jp/trans/jboss-seam1.0.1GA/ja/html/index.html]]
---[[上記の英語版>http://docs.jboss.com/seam/1.2.1.GA/reference/en/html/]]

--[[RichFaces/Ajax4jsf>http://www.jboss.org/jbossrichfaces/docs]]
--[[JBoss EJB3>http://docs.jboss.org/ejb3]]
--[[Hibernate>http://www.hibernate.org/5.html]]
--JBoss Rules(Drools)
--JBoss jBPM

-[[JBoss Developer Studio Document>http://www.redhat.com/developer_studio/guides/index.html]]

-[[JBoss ホワイトペーパー(日本語)>http://www.jp.redhat.com/jboss/docs/wp/]]
--Seamチュートリアル(上・下)はJBoss Developer Studioを手っ取り早く覚えたい人にはおすすめ

-[[JBoss RichFaces>http://www.jboss.org/jbossrichfaces/docs/]]

-[[JBoss Seam FAQ@JBoss.org>http://www.jboss.org/jbossseam/faq/index.html]]

-[[JBoss Seam FAQ@SeamFramework.org>http://www.seamframework.org/Documentation/FAQsOverview]]

-[[KnowledgeBase Overview>http://www.seamframework.org/Documentation/KnowledgeBaseOverview]]

-[[Link to External Seam Documentation@SeamFramework.org>http://www.seamframework.org/Documentation/LinksToExternalSeamDocumentation]]



*Download [#ad1275a6]
-[[JBoss Developer Studio(有料)の導入>http://www26.atwiki.jp/memotech/pages/17.html]]

-[[JBoss Seam Download>http://www.seamframework.org/Download]]
-[[JBoss Application Server download>http://www.jboss.org/jbossas/downloads/]]

-[[JBoss Tools Project>http://www.jboss.org/tools/]]

-[[JBoss Application Platform>http://www.jboss.com/products/platforms/application]]
--JBoss ASの有料版?


*入門・紹介系記事 [#f668be40]
-[[JBoss が Developer Studioと1.0とTools2.0を展開@InfoQ>http://www.infoq.com/jp/news/2008/01/jboss-dev-studio]]

-[[JBoss Seamの導入@InfoQ>http://www.infoq.com/jp/articles/jboss-seam]]
--Seam Webアプリケーションの記述は、概念的に非常に単純である。次のコンポーネントをコーディングするだけでよい。:
---エンティティオブジェクトはデータモデルを表す。エンティティオブジェクトは、Java Persistence API(JPA、別名EJB3永続性)またはHibernate POJOでエンティティBeanになり得る。関係データベーステーブルに自動的にマッピングされる。
---JSF Webページはユーザーインターフェイスを表示する。ページはフォームを通じてユーザー入力をキャプチャし、結果データを表示する。フォームフィールドとデータ表示テーブルはエンティティBeanまたはエンティティBeanの集合体にマッピングされる。
---EJB3 セッションBeanまたはアノテーション付きSeam POJOはJSF WebページのUIイベントハンドラとして機能する。これらは、エンティティBeanでカプセル化されたユーザー入力を処理し、次のステップ(またはページ)での表示のためのデータオブジェクトを生成する。

-[[JBoss勉強会発表資料>http://www.jbug.jp/cgi-bin/fswiki/wiki.cgi?page=JBoss%CA%D9%B6%AF%B2%F1%C8%AF%C9%BD%BB%F1%CE%C1]]

-[[Webの上のポジョをステートフルにつなぐJBoss Seam>http://www.atmarkit.co.jp/fjava/special/jbossseam/jbossseam_1.html]]

-[[JBoss Seam - EJB3.0時代のフレームワークを使いこなす>http://journal.mycom.co.jp/special/2006/seam/index.html]]
--JBoss Seamは、Java EE 5アプリケーションにおいてEJB 3.0(Enterprise Java Beans 3.0)のコンポーネントモデルとJSF(JavaServer Faces)のコンポーネントモデルをシームレスに統合するためのWebアプリケーションフレームワークである。
--JBoss Eclipse IDEというプラグインが提供されている
--Managed BeanとしてEJBコンポーネントを扱える(Seamコンポーネント)


*特徴 [#be78a306]
-双方向のDI(バイジェクション)
--Expression Languageを使って式の値をインジェクトも可能
--コンポーネント間の参照はコンテキストを介して間接的に行われる
--@Inアノテーションでメソッド実行前にコンテキストからオブジェクトを取得
--@Outアノテーションでメソッド実行後にコンテキストにオブジェクトを設定
--アプリケーションの実行中に何度でも注入が行われる
--参考:[[バイジェクションとコンテキスト>http://www.ne.jp/asahi/davinci/code/jboss/seam/index4.html]]

-7つのスコープ(ここでいうスコープとは、コンテキストにセットした変数が生きている期間=範囲のこと)
--Application アプリケーションの開始から終了まで
--Business Process ビジネス・プロセスの開始から終了まで
--Session セッションの開始から終了まで
--Conversation 対話の開始から終了まで
---対話とは、@Beginをつけたメソッドから@Endをつけたメソッドまで
---一つのPCで複数のWebブラウザを立ち上げた場合、ブラウザの状態を別々に管理できる
--Event リクエストの開始から終了まで
--Page ページの開始から終了まで
--Stateless 状態を管理しない

*JBoss Application Serverのzipファイルからのインストール手順 [#s26ff22d]
-適当な場所にZIPを展開
-環境変数JAVA_HOMEにJavaのルートをセット
  例)C:\Program Files\Java\jdk1.5.0_16
-%JAVA_HOME%\jre\bin にパスを切る
-サーバの起動
--<zipを展開したディレクトリ>\bin\run.batを実行する
--注意:このときポート 8080を使うアプリ(例えばPOPFileとか)を起動していたら終了させておくこと
-起動したら以下の場所をWebブラウザでアクセスしてみる
	http://localhost:8080/
-"JBoss Online Resouces" というページが表示されたら成功
-失敗したら <zipを展開したディレクトリ>\server\default\log にあるserver.logを見てみるべし。例外が出てるところに原因が出ている
-起動したサーバを終了させるときはコンソールからCtrl+Cを押すと良い模様(もっと正規の方法があるのかも?)

**アンインストール [#d7eefea2]
-zipからインストールした場合は単に解凍したディレクトリをまるごと削除すればいい


*Tips [#c03502ff]
-Seamアプリケーションは、JavaクラスとXML/テスト設定ファイルで構成されます。
--Javaソースコードファイルはsrcディレクトリ内にあり
--すべての設定ファイルはresources ディレクトリ内にあります。

-[[jboss-seam.jarがデプロイされない>http://d.hatena.ne.jp/re_shikajiro/20080620/1213977721]]
--JBossToolsで作ったearをデプロイしたら、earプロジェクトのjboss-seam.jarがデプロイされないよ!
--色々調べたら、以下の記述を消せばいいみたいだよ。
 application.xmlの
 
 <module>
 	<ejb>jboss-seam.jar</ejb>
 </module>
--(この話のソースが書いてないのが残念)

-[[Seamの認証機構>http://www.jbug.jp/trans/jboss-seam1.2.1GA/ja/html/security.html]]
--ELにidentity.loginなどの内臓クラスのメソッドが指定されているのに、別のクラスで自分で作ったまったく別名のメソッド、例えばAuthenticator.authenticate()などで対応されるという不思議な動きをする。
--自分で作った認証メソッドとidentity.loginの対応付けはcomponents.xml内で指定されている。
 <security:identity authenticate-method="#{authenticator.authenticate}"/>
--【感想】:こういう仕組みって用意した側は便利なつもりなのかもしれないが非常に気持ち悪いのは自分だけだろうか…なぜなら、htmlソースのELで読んでいるidentity.loginからAuthenticator.authenticate()へどうやってたどり着けばいいか、components.xmlのことを知っていない限り直感的にはわからないから。


*examples下にあるサンプルについて [#w148ff93]
-Seamのディレクトリにあるbuild.propertiesに jboss.homeの行を追加するときに、ディレクトリの区切りの円マークは二重にする必要があるようだ。readme.txtにはこのことが書いてないので注意(これってJavaの人には常識なの?)
 正しい記述例
 jboss.home = D:\\MyData\\java\\jboss-AS4.2.3.GA
 
 これではダメです
 jboss.home = D:\MyData\java\jboss-AS4.2.3.GA

-JBoss Seamのbookingというサンプルをant(ビルド→deploy)してみたらエラー(下記)が発生した
 2008-09-15 01:10:39,901 ERROR [org.apache.catalina.core.ContainerBase.
 [jboss.web].[localhost].[/seam-booking]] クラス 
 org.apache.myfaces.webapp.StartupServletContextListener の
 アプリケーションリスナの設定中にエラーが発生しました
--これはJBoss ASのバージョンが4.2.3であるのに対し、使ったサンプルが Seam 1.2.1GAのものであったためらしい。
---参考にしたblog記事:http://d.hatena.ne.jp/fusatsukatsujin/20080316
--Seamの2.0.3CR1を落としてきてbooking exampleをantしたら今度は無事に動いた


*RichFaces [#c5415640]
-RichFaces is an open source framework that adds Ajax capability into existing JSF applications without resorting to JavaScript.


*EL(Expression Language) [#s51df338]
-JSFのビューからの指定方法
--#{コンポーネント名.プロパティ名}
--#{コンポーネント名.メソッド名}

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS