Posts filed under ‘Java’
Javaコミュニティプロセスの EC 選挙について

2011 年 Executive Committee(EC)の特別選挙
2011年現在 JCP(Javaコミュニティプロセス)の EC の特別選挙が進められています!ECの選挙プロセスは、2000年6月に開始しました。この特別選挙は Votenet でホストされ2011年 4/26-5/9 に掛けて行われます。またこれに先立ち 4/12-4/25 までの期間オープンなノミネーションを行っています。JCP メンバーは、オープンノミネーション期間中に募集しているいずれかの席に対して立候補することができます。また、JCP メンバーには EC 選挙で投票する権利があります。
各メンバーには、コンタクト担当者から投票に必要な資格情報が、すでにメールで発送されています。
この特別選挙では、SE/EE の Executive Committee 用に 2 つの批准席、SE/EE の Executive Committee 用に一つのオープン選出席、ME の Executive Committee 用に一つのオープン選出席が投票対象になっています。
- SE/ EEの Executive Committee
- Apache Software Foundation(批准席):任期は2013年終了
- Doug Lea(批准席):任期は2013年終了
- Tim Peierls(選出席):任期は2012年終了
- ME の Executive Committee
- ソニーエリクソン(選出席):任期は2011年終了
| 2011年 EC 特別選挙の日程 | |
| 2011年4月12日 – 25日 | 選出席ノミネーションの開始 |
| 2011年4月19日 | 有権者の資格の締め切り |
| 2011年4月26日 – 5月9日 | 投票期間 |
| 2011年5月10日 | 新規 EC メンバーの就任 |
2011年 Executive Committee(EC)特別選挙のノミネーション
EC の特別選挙のノミネーションがすでに始っています。立候補するためには下記の情報が必要です。
- 連絡先情報(名前、メールアドレス、電話番号)
- どの EC の席に立候補するか
- 立候補する JCP メンバーの経歴 (3 – 4 パラグラフ程度)
- 立候補する JCP メンバーの、EC における代表者となる人物の略歴
- 代表者の写真
- 立候補する JCP メンバーの意思表明書 (マニフェスト) (PDF 形式)
立候補するための方法の通知と指示書を各 JCP のメンバーの主要連絡先に電子メールで送信します。
Java コミュニティプロセス(JCP)の EXECUTIVE COMMITTEE について
JCP は 2 つの Executive Committee (EC) (SE/EE と ME) を持っており、それぞれ異なるプラットフォームをターゲットにしています。各 EC のメンバーの任期は 3 年です。10 個の批准席、5つの選出席があり、Oracle Corporation で保有する常任席があります。全 15 席の 5 席が毎年、批准席と選出席で正常に稼働するように、3年任期で交互に実行されます。
EC は、ステークホルダーとして、また Java コミュニティの他のメンバーの両方の役割を担う代表者です。
EC の任務は多岐に渡ります:
実現する JSR の選択、パブリックレビュードラフト仕様の承認、最終仕様の承認、TCK 抗議のレビュー、メンテナンス改正のリビジョンの承認、場合に応じていくつかの機能を次期 JSR へ延期する承認、メンバー間の保守作業の移行の承認、Program Management Office(PMO)へのガイダンスの提供など
より詳細な EC に関する情報を取得したい場合
Executive Committee 情報ページ http://jcp.org/en/participation/committee を
ご参照ください。
2000 ECの選挙結果については、こちらをお読み下さい。
2001 ECの選挙結果については、こちらをお読み下さい。
2002 ECの選挙結果については、こちらをお読み下さい。
2003 ECの選挙結果については、こちらをお読み下さい。
2004 ECの選挙結果については、こちらをお読み下さい。
2005 ECの選挙結果については、こちらをお読み下さい。
2006 ECの選挙結果については、こちらをお読み下さい。
2007 ECの選挙結果については、こちらをお読み下さい。
2008 ECの選挙結果については、こちらをお読み下さい。
2009 ECの選挙結果については、こちらをお読み下さい。
2010 ECの選挙結果については、こちらをお読み下さい。
JCP の詳細については、JCP の概要ページ http://jcp.org/introduction/overview を参照してください。
選挙に関するご質問は PMO の問い合わせ先:pmo@jco.org までご連絡ください。
最後に、本エントリはWhat’s New: Java Community Process EC Electionsを翻訳した内容です。日本の Java の開発者の皆様の多くは JCP に参加されていない方が多いかと想定しますが、今海外では Java の今後において大きな役割を担う EC の選挙が行われています。今回は、ブラジルの Java Community である SouJava を推薦する等の情報もあります。JCP の EC メンバーは厳正な投票にて選ばれています。是非今後の動きに是非ご注目ください。
追記:
訳をしていて一部わからなかった事があるので確認しました。通常毎年10月に 5 席の選挙が行われるのですが毎年行われる通常選挙は今年も開催される予定です。上記選挙は文字通り特別選挙で ASF の脱退等により空いた Executive Committee のポストに対する選挙になります。
NetBeans 7.0 とフリーの Java Magazine

NetBeansの7.0 FCSがもうすぐ利用できるようになります。
NetBeans 7.0は、JDK7 のプロジェクトコインに対応する他、エディタの強化、WebLogic のサポート、Glassfish v3.1 のサポート、Maven 3 のサポートJava EE のサポート、HTML5 コードの編集機能の改善、PHP の改善、C/C++ のサポート等数多くの改良が行われており、効率よく迅速な開発ができるようになっています。
詳細の機能を確認したい場合は、コチラをチェックして頂くか、FCSのリリースまでまてない方は、NetBeans 7.0 RC2 をダウンロードしてご確認ください。
英語に堪能な方は、NetBeans のエンジニアリングマネージャーが 4/12 に OTN で説明した、新機能の概要を下記より近い時期に参照できるようになる予定ですのでご確認ください。
iTune サイトから
TechCast Live Archive サイトから

今年の夏より新しく、”Java Magazine”(電子媒体) が発行されます。
Java Magazine はOracle のエンジニアが直接書く内容の他、コミュニティメンバーによって書かれた内容も含まれます。
含まれるコンテンツは “Java Community News and Events”, “Java in Action”(Java アプリケーションのストーリ), “Java アーキテクチャ”、”Java の新機能”、”エンタープライズ Java プログラミング”, “リッチクライアント”, “Web 開発”, “モバイル、組み込み開発” 等、様々なコンテンツが提供される予定です。
Java Magazine は7月末から隔月で Web版、モバイル版それぞれの提供を開始します。購読は無料ですので、Java に関する情報をいち早く入手したい方は是非登録のうえご購読ください。
登録はコチラから
超入門!はじめてみようJavaプログラミング
先日開催したデブサミでアンケートを頂きましたが、その中に「 Java の初学者用のコンテンツが少ない、どこからはじめればよいのか分からない。」という内容も頂いておりました。日本オラクルではオンラインセミナーで「超入門!はじめてみようJavaプログラミング」と題して Java プログラミングをこれから始める方向けのセミナーを開催します。是非上記より登録の上ご参加ください。
(※ 発表者は私ではありません)
Java 開発者向け情報サイト OTN
日本オラクルでは、Oracle Technology Network (通称 OTN) で Java 開発者の皆様向けの情報を提供しています。現在は英語コンテンツが多いですが、今後日本語に翻訳されたコンテンツ等を提供していく予定です。
現在、OTN では Java の開発者向けのサイトを構築するにあたり、Java の開発者の皆様からこのようなサイトにして欲しい等のご要望、アンケートを承っています。またアンケートにお答え頂いた先着200名の皆様に卓上カレンダーを贈呈致しますので是非開発者の皆様のご要望、ご意見を頂ければと思っております。
仮に、アンケートが終了した場合、もしくはアンケートに記載できなかった場合は、本ブログへご要望、ご意見等をください。OTN サイト構築の際に参考にさせて頂きますので、いずれの方法でも結構ですので開発者の皆様の声を是非日本オラクルまでお届けください。
どうぞ宜しくお願いします。
JSF 2.0 で Facelets タグをコメントする方法
今日は、JSF 2.0 の Facelets でコンポーネントタグをコメントする方法をご紹介します。テスト用のコードを記載する際、デバッグ用のコード、もしくはダミーのコードを埋め込んだりする事があるかと思いますが、本番環境での表示には必要ないコンポーネントをコメントする方法を下記に紹介します。
まず、始めに、下記のようなサンプルページを作成してください。

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>Facelet Title</title>
</h:head>
<h:body>
<h:commandButton action="#{user.login_dummy}" value="Submit-Dummy"/><br/>
<h:commandButton action="#{user.login}" value="Submit"/>
</h:body>
</html>
CDI の UserBean.java
package jp.co.oracle.cdi;
import java.io.Serializable;
import javax.enterprise.context.SessionScoped;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.validator.ValidatorException;
import javax.inject.Named;
@Named("user")
@SessionScoped
public class UserBean implements Serializable{
public void login(){
;
}
public void login_dummy(){
;
}
}
今回は上記コード中の「Submit-Dummy」ボタンをコメントします。何も考えず、通常通り HTML/XML のコメント(<!– –>)を使って下記のようにコメントをして実行してください。
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>Facelet Title</title>
</h:head>
<h:body>
<!-- <h:commandButton action="#{user.login_dummy}" value="Submit-Dummy"/><br/> -->
<h:commandButton action="#{user.login}" value="Submit"/>
</h:body>
</html>
すると、下記のようなエラーが表示されます。

致命的: Error Rendering View[/comentSample.xhtml]
javax.el.PropertyNotFoundException: The class ‘jp.co.oracle.cdi.org$jboss$weld$bean-$Users$yt133043$NetBeansProjects$JSFSampleApplication$build$web$-ManagedBean-class_jp$co$oracle$cdi$UserBean_$$_WeldClientProxy’ does not have the property ‘login_dummy’.
警告: StandardWrapperValve[Faces Servlet]: PWC1406: Servlet.service() for servlet Faces Servlet threw exception
これは、通常の XML/HTML のコメントのように、<!– –> でコメントしても JSF 2.0 の実行環境では完全にコメントできていない事を表しています。内部的には、 #{user.login_dummy}の EL式が評価・処理されています。
そこで、JSF のコンポーネントタグをコメントする方法(EL式も含め)を2通り紹介します。
1. <ui:remove> </ui:remove> タグを使用する方法
2. facelets.SKIP_COMMENTS を web.xml に記載する方法
まず、始めの方法は
<ui:remove> タグを使用する方法です。下記の 10 行目〜12 行目のように、コメントしたいコンポーネントを <ui:remove> </ui:remove> でくくってください。
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets">
<h:head>
<title>Facelet Title</title>
</h:head>
<h:body>
<ui:remove>
<h:commandButton action="#{user.login_dummy}" value="Submit-Dummy"/><br/>
</ui:remove>
<h:commandButton action="#{user.login}" value="Submit"/>
</h:body>
</html>
コメントした後、画面を再描画すると「Submit-Dummy」のコマンドが非表示になっている事を確認できます。

この時の描画されたページの HTML ソースコードは下記のようになります。
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="stylesheet" type="text/css" href="/JSFSampleApplication/primefaces_resource/2.1/skins/sam/skin.css" />
<title>Facelet Title</title>
</head>
<body>
<input type="submit" name="j_idt7" value="Submit" />
</body>
</html>
次にもう一つの方法は、
web.xml 設定ファイルに facelets.SKIP_COMMENTS を記述する方法です。下記の7 行目〜10 行目のように web.xml に facelets.SKIP_COMMENTS を追加してください。すると<!– –> でくくられた箇所が EL 式も評価されずコメントされる事が確認できます。
web.xml 設定ファイルの編集:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Production</param-value>
</context-param>
<context-param>
<param-name>facelets.SKIP_COMMENTS</param-name>
<param-value>true</param-value>
</context-param>
...

この時の HTML の出力結果は下記のようになります。
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="stylesheet" type="text/css" href="/JSFSampleApplication/primefaces_resource/2.1/skins/sam/skin.css" />
<title>Facelet Title</title>
</head>
<body>
<input type="submit" name="j_idt7" value="Submit" />
</body>
</html>
どちらの方法を使用してもコメントができるようになりますので、開発者の皆様の使い勝手の良い方法を選択してください。
WebLogic 10.3.4 が正式リリース
WebLogic 10.3.4 が正式リリースされました。WebLogic 10.3.4 は ExaLogic 対応等数多くの機能追加があります。例えば、JSF 2.0 や JPA 2.0 が利用できるようになっています。下記では昨年開催された Oracle DBA Developer Days 2010 のイベントで発表した WebLogic Server 10.3.4 の新機能概要をプレゼンでまとめていますので、どうぞご参照ください。
また、下記のデモは 10.3.4 に追加されたクラスローダ解析ツールを JSF 2.0 のアプリケーションを作成してデモしています。ClassLoader Analysis Tool はクラス名の衝突を Web の画面から確認できるようになっていますので、非常に便利です。
(画面を大きくし 720p に変更してご覧ください。)
また、下記のデモは 10.3.4 から Maven Plugin を提供しますが、WebLogic の Maven Plugin の利用方法について紹介しています。
JSF 2.0 の新機能概要とFacelets テンプレートのご紹介
![]()
JavaServer Faces 2.0(JSF) は Java EE 6 含まれる標準 Web ユーザインタフェース技術です。これから数回に渡り、JSF 2.0 の新機能を紹介して行きたいと思います。
JSF 2.0 の新機能
- Facelets/VDL による実装
- Ajax 対応
- カスタム複合コンポーネント
- Behavior
- Partial State
- ページナビゲーションの改良
- Resource Loading
- ブックマーク可能なページ
- New Event API
- 例外ハンドリング
- JSR-303 Bean Validation のサポート
- faces-config.xml のオプション化
JSF 2.0 では JSF 1.2 に比べ上記のような新機能が含まれますが、今日は JSF 2.0 から標準仕様に含まれた Facelets について紹介します。
Facelets は JSF 1.2 まで View を記載する方法として使用されていた JavaServer Pages(JSP) で の代替え方法として開発されました。JSF 1.2 の頃は Facelets は標準仕様内に組み込まれていなかったため、別途利用するための設定等が必要でしたが、JSF 2.0 からは JSF の標準仕様内に組み込まれたため、今後は JSP の変わりに Facelets(XHTML) を記載して開発するようになります。
また、JSF 1.2 は Servlet 2.5 と組み合わせて動作させる必要がありましたが、JSF 2.0 では Servlet 3.0 との組み合わせは必須ではなく、Servlet 2.5 との組み合わせでも動作させる事ができるようになっています。つまり JSF 2.0 の実行環境(参照実装は Mojjara(モハラ)) は Java EE 6 の環境下だけでなく Java EE 5 の環境でも動作させる事ができるようになっています。WebLogic 10.3.3 等 Java EE 5 のアプリケーションサーバ上でも JSF 2.0 を動作させる事ができるようになっています。
● Facelets による開発の利点
JSF 1.2 までは JSP で JSF を開発していました。しかし JSP で開発する際には、コンパイル時にオーバヘッドが掛かっていました。例えば、JSP のコードを編集したり、保存、ページの再読み込みのような処理を行うたびに、JSP コンパイラは Java の Servlet コードを生成し、コンパイルをを行っていました。これは JSP の Translation プロセスと呼ばれ、約1~2秒程のオーバヘッドが掛かっていました(サーバの処理能力に依存)。
一方、JSP と異なり、Facelets ページは Servlet にコンパイルされず、XML として処理を行います。そして Facelets は表示を行うために高速な SAX ベースのコンパイラを使用しています。また Facelets はページの変更等を即座に検知する事ができるため、JSF における開発効率が向上します。
■テンプレート機能
多くの Web サイトではページ間のデザインを統一するため、共通の表示部分を持たせる事が多いかと思います
例えば、共通のヘッダやフッダ、サイドバー等はページ間で統一したいかと思います。上記の Web ページでは下記のように共通部分を5つ(ヘッダ、左ペイン、右ペイン、フッダ、自由記載のコンテンツ領域)に分割する事ができます。
この内、「自由記載のコンテンツ領域」以外は全ページで同一コンテンツを表示したいと考えます。このような場合、作成するページ毎に共通部分(ヘッダ、フッダ等)を記載すると、開発効率やメンテナンス性が非常に悪くなります。このような重複コンテンツを効率よく扱うために、Facelets では「テンプレート機能」を持ち共通部分をテンプレート内に記載し、必要な部分だけを編集する事ができるようになっています。
PrimeFaces について
上記の画面は全て NetBeans 7.0 Beta に含まれる PrimeFaces を使用して作成しています。Oracle のホームページの画面に似せて作成してみましたが、PrimeFaces は非常にリッチな JSF のコンポーネントを提供していますので、簡単にこのようなリッチな JSF Web アプリケーションを作成する事ができます。PrimeFaces が提供している各種 JSF コンポーネントの詳細は下記をご参照ください。
ご参考:PrimeFaces ShowCase (提供されるコンポーネント一覧)
NetBeans 7.0 Beta で PrimeFaces を利用するためには、新規プロジェクトを作成する際、フレームワークの選択時に、「JavaServer Faces 」をチェックし「コンポーネント」より「PrimeFaces 2.1」を選択してください。

● プロジェクトの進め方とディレクトリ構成
今回、NetBeans 7.0 のプロジェクトを作成しますが、下記のような手順で画面を作成していきます。

1. ヘッダの作成
2. 左ペインの作成
3. 右ペインの作成
4. フッダの作成
5. テンプレートの作成
6. 各種ページの作成
ちなみに、プロジェクトのディレクトリ構成は下記のように作成しています。
「Web ページ」配下に「templates」ディレクトリを作成し、JSF のテンプレートファイル (1〜5) はすべてこのディレクトリ配下に作成します。

1. ヘッダ部分の作成
![]()
まず、ヘッダ部分を作成します。ヘッダ部分は PrimeFaces で提供されている MenuBar を利用します。
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:p="http://primefaces.prime.com.tr/ui"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>Facelet Title</title>
</h:head>
<h:body>
<h:form id="menue">
<h:graphicImage url="/resources/images/Oracle_ja.gif"/>
<p:menubar>
<p:submenu label="製品">
<p:menuitem value="Oracle DataBase" url="http://www.oracle.com/jp/products/database/index.html">
</p:menuitem>
<p:menuitem value="Oracle Fusion Middleware" url="http://www.oracle.com/jp/products/middleware/index.html">
</p:menuitem>
</p:submenu>
<p:submenu label="ダウンロード">
<p:menuitem value="DataBase"></p:menuitem>
<p:menuitem value="DataBase 11g" url="http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html">
</p:menuitem>
</p:submenu>
<p:submenu label="価格/ライセンス">
<p:menuitem value="価格表" url="http://www.oracle.com/jp/corporate/pricing/pricing-pricelists-079522-ja.html">
</p:menuitem>
</p:submenu>
<p:submenu label="サポート">
<p:menuitem value="価格表" url="http://www.oracle.com/jp/corporate/pricing/pricing-pricelists-079522-ja.html">
</p:menuitem>
</p:submenu>
<p:submenu label="研修/資格">
<p:menuitem value="価格表" url="http://www.oracle.com/jp/corporate/pricing/pricing-pricelists-079522-ja.html">
</p:menuitem>
</p:submenu>
<p:submenu label="パートナー">
<p:menuitem value="価格表" url="http://www.oracle.com/jp/corporate/pricing/pricing-pricelists-079522-ja.html">
</p:menuitem>
</p:submenu>
<p:submenu label="日本オラクルについて">
<p:menuitem value="価格表" url="http://www.oracle.com/jp/corporate/pricing/pricing-pricelists-079522-ja.html">
</p:menuitem>
</p:submenu>
</p:menubar>
</h:form>
</h:body>
</html>
2. 左ペイン部分の作成
次に左ペインの部分を作成します。

左ペインの部分は PrimeFaces で提供されている Menu を利用します。
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:p="http://primefaces.prime.com.tr/ui"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>Facelet Title</title>
</h:head>
<h:body>
<h:form>
<div class="leftString">
<p:menu>
<p:submenu label="Oracle Fusion Middleware">
<p:menuitem value="アプリケーション・グリッド"/>
<p:menuitem value="アプリケーション統合アーキテクチャ"/>
<p:menuitem value="WebLogic Server"/>
<p:menuitem value="ビジネス・インテリジェンス"/>
<p:menuitem value="ビジネスプロセス管理"/>
<p:menuitem value="コラボレーション"/>
<p:menuitem value="コンテンツ管理"/>
<p:menuitem value="データ統合"/>
<p:menuitem value="開発ツール"/>
<p:menuitem value="イベント駆動アーキテクチャ"/>
<p:menuitem value="Exalogic"/>
<p:menuitem value="ID管理"/>
<p:menuitem value="インメモリ・データグリッド"/>
</p:submenu>
</p:menu>
</div>
</h:form>
</h:body>
</html>
3. 右ペイン部分の作成
次に右ペインの部分を作成します。

右ペインの部分は PrimeFaces で提供されている Accordion Panel を利用します。
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:p="http://primefaces.prime.com.tr/ui"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>Facelet Title</title>
</h:head>
<h:body>
<h:form>
<div class="leftString">
<p:accordionPanel autoHeight="false">
<p:tab title="ダウンロード">
<h:panelGrid columns="2" cellpadding="10">
<h:outputText value="Oracle Universal Content Management"/>
</h:panelGrid>
</p:tab>
<p:tab title="サポート">
<h:panelGrid columns="2" cellpadding="10">
<h:outputText value="Oracle Support"/>
<h:outputText value="Advanced Customer Services"/>
</h:panelGrid>
</p:tab>
<p:tab title="技術情報">
<h:panelGrid columns="2" cellpadding="10">
<h:outputText value="Oracle Content Management"/>
</h:panelGrid>
</p:tab>
<p:tab title="パートナー">
<h:panelGrid columns="2" cellpadding="10">
<h:outputText value="Find Specialized partner"/>
</h:panelGrid>
</p:tab>
<p:tab title="カタログ/データシート">
<h:panelGrid columns="2" cellpadding="10">
<h:outputText value="Brochure: Oracle Content Management (PDF)"/>
<h:outputText value="Data Sheet: Unversal Content Management (PDF)"/>
</h:panelGrid>
</p:tab>
<p:tab title="ホワイトペーパー">
<h:panelGrid columns="2" cellpadding="10">
<h:outputText value="Information Workplace Platform: Oracle vs Microsoft(PDF)"/>
<h:outputText value="Get More from Microsoft SharePoint with Oracle Fusion Middleware (PDF)"/>
</h:panelGrid>
</p:tab>
</p:accordionPanel>
</div>
</h:form>
</h:body>
</html>
4.フッダ部分の作成
次にフッダ部を作成します。
![]()
フッダ部分はちょっと手抜きですが、下記のように記述します。
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>Facelet Title</title>
</h:head>
<h:body>
<div class="greyBarBottom"><!--footer--></div>
<h:graphicImage url="/resources/images/oracle-footer-tagline.gif"/>
<div class="footerString">
会社情報 | オラクルとサン | Oracle RSS Feeds | Subscribe | 採用情報 | お問い合わせ | サイトマップ | ウェブサイトのご使用条件 | 個人情報保護基本方針 | 情報保護基本方針
</div>
</h:body>
</html>
5. JSF テンプレートの作成
次に、上記で作成した各共通部分を含むテンプレートを作成します。NetBeans のプロジェクトから「新規」→「その他…」を選択してください。

すると下記の画面が表示されます。ここで「Facelets テンプレート」を選択します。

選択すると下記の画面が表示されますので、レイアウトのスタイルを選択して「完了(F)」ボタンを押下します。
ボタンを押下するとテンプレートの雛形が生成されますので、これを編集して Facelets テンプレートを完成させます。ここでは、 <ui:include src=”./top.xhtml”/>、<ui:include src=”./left.xhtml”/>、<ui:include src=”./right.xhtml”/>、<ui:include src=”./bottom.xhtml”/> のタグを使ってそれぞれをテンプレートの適切な箇所に記載します。
「レイアウトスタイル:」で「表」をチェックした際のテンプレートの記載内容を下記に示します。(画面構成は自由にカスタマイズができます。)
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link href="./../resources/css/default.css" rel="stylesheet" type="text/css" />
<link href="./../resources/css/tableLayout.css" rel="stylesheet" type="text/css" />
<title>Facelets Template</title>
</h:head>
<h:body>
<table cellspacing="10px">
<tr>
<td id="top" colspan="3">
<ui:insert name="top">
<ui:include src="./top.xhtml"/>
</ui:insert>
</td>
</tr>
<tr>
<td id="left">
<ui:insert name="left">
<ui:include src="./left.xhtml"/>
</ui:insert>
</td>
<td id="content">
<ui:insert name="content">Content</ui:insert>
</td>
<td id="right">
<ui:insert name="right">
<ui:include src="./right.xhtml"/>
</ui:insert>
</td>
</tr>
<tr>
<td id="bottom" colspan="3">
<ui:insert name="bottom">
<ui:include src="./bottom.xhtml"/>
</ui:insert>
</td>
</tr>
</table>
</h:body>
</html>
6. JSF テンプレートクライアント(表示用のページ)の作成
次に、テンプレートを利用した表示用のページを作成します。NetBeans のプロジェクトから「新規」→「その他…」を選択してください。

すると下記の画面が表示されます。ここで「Facelets テンプレートクライアント」を選択します。

ここで「テンプレート:」の「参照…」ボタンを押下してください。すると下記のように、テンプレートを選択するウィンドウが表示されます。
作成したテンプレート(tableTemplate2.xhtml)を選択し「ファイルを選択」ボタンを押下します。最後に「完了(F)」ボタンを押下します。
すると下記の雛形が自動生成されます。
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets">
<body>
<ui:composition template="./templates/tableTemplate2.xhtml">
<ui:define name="top">
top
</ui:define>
<ui:define name="left">
left
</ui:define>
<ui:define name="content">
content
</ui:define>
<ui:define name="right">
right
</ui:define>
<ui:define name="bottom">
bottom
</ui:define>
</ui:composition>
</body>
</html>
ここで「Facelets テンプレート」と「テンプレートクライアント」の関係を説明します。「Facelets テンプレート」の中身を確認すると下記のタグが記載されている事が確認できます。(それぞれ、17行目, 24行目, 29行目, 32行目, 39行目)
<ui:insert name="top">
<ui:insert name="left">
<ui:insert name="right">
<ui:insert name="content">Content</ui:insert>
<ui:insert name="bottom">
一方で、「テンプレートクライアント」の中身を確認すると下記のタグが記載されている事が確認できます。(それぞれ10行目, 14行目, 18行目, 22行目, 26行目)
<ui:composition template="./templates/tableTemplate2.xhtml">
<ui:define name="top">
<ui:define name="left">
<ui:define name="content">
<ui:define name="right">
<ui:define name="bottom">
</ui:composition>
Facelets ではテンプレート中に記載されている <ui:insert name=”NAME”> の箇所をテンプレートクライアントの <ui:define name=”NAME”> で更新する事ができます。テンプレートの全てを変更したい場合は全て上書きする事ができますが(NetBeans で自動的に作成される上記の雛形は全てを上書きします)、自由記載のコンテンツ領域だけを編集したい場合は、下記のように必要な部分のみ(<ui:define name=”content”> のタグの部分だけを残してその部分のみ)を編集します。
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets">
<body>
<ui:composition template="./templates/tableTemplate2.xhtml">
<ui:define name="content">
ここに「自由記載 コンテンツ領域」の内容を書きます。
</ui:define>
</ui:composition>
</body>
</html>
テンプレートを使用して作成したコンテンツへアクセスすると下記の画面が表示されます。

JSF 2.0 の Facelets のテンプレート機能を効果的に利用すると Web ページの開発が効率化され、本当に必要な部分の開発にのみ集中できるようになります。また、NetBeans 7.0 Beta に含まれる PrimeFaces も非常にリッチな JSF コンポーネントが用意されていますので、見栄えのよい Web ページをかんたんに作成する事ができるようになります。
是非、お試しください。
本ページで使用した NetBeans 7.0 Beta のプロジェクトは下記より入手可能です。JSFSampleApplication.jar (NB7 プロジェクトファイルのアーカイブ)の入手はコチラ
余談:
上記、プロジェクトですが、web.xml の設定を Development にすると画面中に下記のワーニングが表示されます。(すいません、原因がつかめていません。)
The button/link/text component needs to have a Form in its ancestry. Please add <h:form>.
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
下記のように、Production に変更するとワーニングは表示されません。
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Production</param-value>
原因がわかったら追記します。
EJB 3.1 の Singleton はインスタンス単位で有効
皆様、本件につきまして皆様に誤解を与え大変申し訳ございませんでした。
過去、私が Java EE 6 の EJB 3.1 で Singleton クラスについて説明した際、Singleton クラスは異なるJavaVM(クラスタ環境)で1インスタンスを保証すると説明しておりました。このページで説明する資料の P30 など。しかしながら、EJB 3.1 の仕様を改めて確認した所、下記の記載がございました。
JSR 318: Enterprise JavaBeansTM,Version 3.1
4.8 Singleton Session Beans
A Singleton session bean is a session bean component that is instantiated once per application. In cases where the container is distributed over many virtual machines, each application will have one bean instance of the Singleton for each JVM.
当初、GlassFish v3.1 でクラスタを跨ぐ Singleton をサポートする計画で開発が進められていた事を知っていた事もあって上記解釈を間違えてしまいました。
上記の事実は GlassFish v3.1 の EJB の拡張部分について確認していた際、クラスタ環境での Singleton をサポートしないという下記の記載があり気付き、再度上記仕様を確認致しました。
EJB 3.1 Singleton support
No new work is needed to support the EJB 3.1 spec behavior of per-JVM singleton instance creation. We evaluated using the EJB Singleton component as the basis of a new per-cluster Singleton, but the programming model is not a good fit.
GlassFish Issue Tracker
上記 Issue Tracker にも Singleton はクラスタ単位で作成されるのではなくそれぞれのインスタンス(JVM)単位で作成される事が明記されております。
また、この情報は高可用性管理ガイド、アプリケーション開発ガイド、アプリケーション配備ガイドに記載する旨記載されておりました。
本件につきまして私の誤解から間違えた内容を伝えてしまった事を心よりお詫び申し上げます。
Java SE 7, 8 関連の JSR が承認
Java SE 7, 8 に関連した下記 4 つの JSR(Java Sepcification Request)が
11 月 JCP(Java Community Process) に登録されておりましたが、
12 月 7日 下記の全てが Executive Committee によって承認されたようです。
- JSR 334: 小さな言語仕様の拡張(Project Coin)
- JSR 335: Lambda 表記 (Project Lambda)
- JSR 336: Java SE 7 に含まれる新機能
- JSR 337: Java SE 8 に含まれる新機能
Mark Reinhold のブログ記事に下記のコメントがアップデートされております。
Update 2010/12/7 00:06 — The Executive Committee approved all four JSRs after a one-week extension of the voting period. Onward!
JavaFX の新しいグラフィックエンジン
先日 JavaOne のキーノートで発表された、JavaFX の新しいグラフィックエンジンについてですが、Prism エンジンと呼ばれ、JavaFX 1.3.1 に含まれるようです。
そしてこの Prism エンジンを利用するためには、コマンドライン引数に(-Xtoolkit prism)を指定する必要があります。このオプションは 1.3.1 ではまだ検証目的での使用が推奨されており、デフォルトでは無効になっています。次期 JavaFX のリリース時にはこの Prism エンジンがデフォルトで利用可能になるようです。次期 JavaFX は来年夏頃にリリースする予定です。
JavaFX 1.3.1 での例:
# javafx -Xtoolkit prism -jar MyTest.jar






