<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>寺田　佳央 - Yoshio Terada &#187; Java EE</title>
	<atom:link href="http://yoshio3.com/tag/java-ee/feed/" rel="self" type="application/rss+xml" />
	<link>http://yoshio3.com</link>
	<description>GlassFish Web Server Java</description>
	<lastBuildDate>Fri, 25 May 2012 05:58:43 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='yoshio3.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://1.gravatar.com/blavatar/759d6ca62cbc626125def86454247b76?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>寺田　佳央 - Yoshio Terada &#187; Java EE</title>
		<link>http://yoshio3.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://yoshio3.com/osd.xml" title="寺田　佳央 - Yoshio Terada" />
	<atom:link rel='hub' href='http://yoshio3.com/?pushpress=hub'/>
		<item>
		<title>Servlet 3.0 web-fragment.xml による設定</title>
		<link>http://yoshio3.com/2010/03/14/servlet-3-0-web-fragment-xml-%e3%81%ab%e3%82%88%e3%82%8b%e8%a8%ad%e5%ae%9a/</link>
		<comments>http://yoshio3.com/2010/03/14/servlet-3-0-web-fragment-xml-%e3%81%ab%e3%82%88%e3%82%8b%e8%a8%ad%e5%ae%9a/#comments</comments>
		<pubDate>Sun, 14 Mar 2010 07:04:59 +0000</pubDate>
		<dc:creator>Yoshio Terada</dc:creator>
				<category><![CDATA[Application Server/GlassFish]]></category>
		<category><![CDATA[GlassFish]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[未分類]]></category>
		<category><![CDATA[Java EE]]></category>
		<category><![CDATA[Servlet]]></category>

		<guid isPermaLink="false">http://yoshio3.com/?p=754</guid>
		<description><![CDATA[Web アプリケーションの開発者は Apache Wicket や Spring 等 Servlet とは異な [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yoshio3.com&#038;blog=11776107&#038;post=754&#038;subd=yoshioterada&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Web アプリケーションの開発者は Apache Wicket や Spring 等 Servlet とは異なる別の外部フレームワークを開発時に利用する事があるかと思います。これらの外部フレームワークを使用するためには、これらのフレームワーク特有の設定 (Servlet, Filter 等)を web.xml に設定する必要があります。しかし複数の外部フレームワークを同一アプリケーション内で使用する場合、単一の web.xml ファイル内に全ての設定が含まれファイルが肥大化します。また web.xml ファイルが肥大化すると、各フレームワーク毎の設定を管理する際に可読性も低下しているため、管理が困難となります。</p>
<p>そこで、Web Fragment はフレームワーク毎に独自に設定を登録、管理できるようなメカニズムを提供しています。このWeb Fragment は Servlet 3.0 に導入された新しい技術で、配備記述子をモジュール化し、コンテナがモジュール化した配備記述子を認識する事ができるようになり、上記のような問題を解決しています。<br />
一つの、web-fragment.xml ファイルは web.xml の一部として認識され、利用する外部フレームワーク毎に複数の web-fragment.xml を作成することもできます。</p>
<p>それでは、web-fragment.xml をどこに作成するか確認してみましょう。まず、Web アプリケーションのプロジェクトを作成します。この際、WEB-INF/lib ディレクトリ配下に、web-fragment.xml を含む jar ファイル (下記の例ではExternalLib.jar) をコピーします。<br />
<TABLE BORDER="1" WIDTH="500"><TR><TD>&gt;<B> jar tvf FragmentSample.war </B><br />
     0 Sun Mar 14 14:36:00 JST 2010 META-INF/<br />
    95 Sun Mar 14 14:35:58 JST 2010 META-INF/MANIFEST.MF<br />
     0 Sun Mar 14 14:36:00 JST 2010 WEB-INF/<br />
     0 Sun Mar 14 14:36:00 JST 2010 WEB-INF/classes/<br />
     0 Sun Mar 14 14:36:00 JST 2010 WEB-INF/lib/<br />
  2076 Sun Mar 14 14:36:00 JST 2010 WEB-INF/lib/ExternalLib.jar<br />
   515 Sun Mar 14 14:36:00 JST 2010 WEB-INF/sun-web.xml<br />
   469 Sun Mar 14 14:36:00 JST 2010 index.xhtml</TD></TR></TABLE><br />
<span><br />
ExternalLib.jar には、META-INF ディレクトリ配下に web-fragment.xml を作成します。<br />
<TABLE BORDER="1" WIDTH="500"><TR><TD>&gt;<B> jar tvf ExternalLib.jar </B><br />
     0 Sun Mar 14 14:36:00 JST 2010 META-INF/<br />
   109 Sun Mar 14 14:35:58 JST 2010 META-INF/MANIFEST.MF<br />
   995 Sun Mar 14 14:36:00 JST 2010 META-INF/web-fragment.xml</TD></TR></TABLE><br />
<span><br />
web-fragment.xml には下記のような内容を記載します。下記の例では JSF 2.0 の設定を web-fragment.xml に記載していますが、web.xml に記載する内容とほぼ同様の内容が記載されている事が分かります。<br />
<TABLE BORDER="1" WIDTH="500"><TR><TD>&lt;?xml&nbsp;version=&#8221;1.0&#8243;&nbsp;encoding=&#8221;UTF-8&#8243;?&gt;<br />
<B>&lt;web-fragment&nbsp;xmlns=&#8221;http://java.sun.com/xml/ns/javaee&#8221;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlns:xsi=&#8221;http://www.w3.org/2001/XMLSchema-instance&#8221;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xsi:schemaLocation=&#8221;http://java.sun.com/xml/ns/javaee&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;http://java.sun.com/xml/ns/javaee/web-fragment_3_0.xsd&#8221;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;version=&#8221;3.0&#8243;&gt;</B><br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;context-param&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;param-name&gt;javax.faces.PROJECT_STAGE&lt;/param-name&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;param-value&gt;Development&lt;/param-value&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/context-param&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;servlet&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;servlet-name&gt;Faces&nbsp;Servlet&lt;/servlet-name&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;servlet-class&gt;javax.faces.webapp.FacesServlet&lt;/servlet-class&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;load-on-startup&gt;1&lt;/load-on-startup&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/servlet&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;servlet-mapping&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;servlet-name&gt;Faces&nbsp;Servlet&lt;/servlet-name&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;url-pattern&gt;/faces/*&lt;/url-pattern&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/servlet-mapping&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;session-config&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;session-timeout&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;30<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/session-timeout&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/session-config&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;welcome-file-list&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;welcome-file&gt;faces/index.xhtml&lt;/welcome-file&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/welcome-file-list&gt;<br />
<B>&lt;/web-fragment&gt;</B></TD></TR></TABLE><br />
<span></p>
<p>web.xml の記載は、Servlet 3.0 からオプション化されていますので、web.xml が無くても上記は動作しますが、web.xml を記載する場合は、<B>&lt;metadata-complete&gt; に true が設定されていないこと</B>を確認してください。この&lt;metadata-complete&gt; はアノテーションの利用を許可したり、外部リソースをコンテナが自動的に検出するかどうかを指定する設定ですが、true に設定されていると、アノテーションの利用が不可になる他、web-fragment.xml 等のリソースの自動検出ができなくなります。このタグが記述されていない場合、もしくは false に設定されている場合は、アノテーションも、リソースの自動検出も有効になりますので確認してください。<br />
<TABLE BORDER="1" WIDTH="500"><TR><TD>&lt;web-app version=&#8221;3.0&#8243; xmlns=&#8221;http://java.sun.com/xml/ns/javaee&#8221; xmlns:xsi=&#8221;http://www.w3.org/2001/XMLSchema-instance&#8221; xsi:schemaLocation=&#8221;http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd&#8221; <B>metadata-complete=&#8221;false&#8221;&gt;</B></TD></TR></TABLE>(例：Servlet 3.0 でアノテーション、web-fragment.xml の有効化)<br />
<span><br />
また、複数の外部フレームを利用する場合、フレームワーク毎にそれぞれの web-fragment.xml を作成する事もできます。また、設定を読み込む順番を指定するため２種類の方法を提供しています。</p>
<p>●　Absolute Ordering<br />
　　web.xml ファイルに、&lt;absolute-ordering&gt; を指定して順番を設定します。</p>
<p>●　Relative Ordering<br />
　　web-fragment.xml ファイルに &lt;ordering&gt; を指定して順番を設定します。</p>
<p>例えば、２つの外部フレームワークを２つの Web Fragment(Fragment1, Fragment2) にそれぞれ設定した場合を想定します。この時、web.xml に順番を指定する場合、下記のように記載します。web.xml の設定が最初に読み込まれた後、Fragment2→Fragment1の設定が読み込まれます。<br />
<TABLE BORDER="1" WIDTH="500"><TR><TD>&nbsp;&nbsp;&nbsp;&lt;web-app&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;name&gt;MyApp&lt;/name&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;absolute-ordering&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;name&gt;Fragment2&lt;/name&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;name&gt;Fragment1&lt;/name&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/absolute-ordering&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8230;<br />
&nbsp;&nbsp;&nbsp;&lt;/web-app&gt;</TD></TR></TABLE><br />
<span><br />
最後に、web-fragment.xml の設定は外部フレームワークやリソースをモジュール化して読み込ませる事が可能になる他、web.xml の肥大化を防ぎ、可読性も向上するため設定管理が楽になります。是非お試しください。</p>
<p><TABLE BORDER="1" WIDTH="500" BGCOLOR="GRAY"><TR><TD><FONT COLOR="WHITE">備考：<br />
最初は、上記 web-fragment.xml の設定を Wicket 1.4 を使用して試しましたが動作させる事ができませんでした。調査した結果、現在の Wicket 1.4 は WicketFilter 中で web.xml ファイルを直接参照するように実装されているため、web-fragment.xml の設定ファイル中から設定を読み込む事ができないためでした。今後 WicketFilter 側で修正が施されれば、Wicket の設定も web-fragment.xml に含める事ができるようになるかもしれません。</p>
<p><A HREF="http://svn.apache.org/repos/asf/wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/WicketFilter.java" style="color:yellow;">WicketFilter.java のソースコード</A></p>
<p>実装部分：<br />
InputStream is = filterConfig.getServletContext().getResourceAsStream(&#8220;/WEB-INF/web.xml&#8221;);</FONT></TD></TR></TABLE></p>
<br />カテゴリー:<a href='http://yoshio3.com/category/application-serverglassfish/'>Application Server/GlassFish</a>, <a href='http://yoshio3.com/category/glassfish/'>GlassFish</a>, <a href='http://yoshio3.com/category/java/'>Java</a>, <a href='http://yoshio3.com/category/%e6%9c%aa%e5%88%86%e9%a1%9e/'>未分類</a> Tagged: <a href='http://yoshio3.com/tag/java-ee/'>Java EE</a>, <a href='http://yoshio3.com/tag/servlet/'>Servlet</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/yoshioterada.wordpress.com/754/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/yoshioterada.wordpress.com/754/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/yoshioterada.wordpress.com/754/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/yoshioterada.wordpress.com/754/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/yoshioterada.wordpress.com/754/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/yoshioterada.wordpress.com/754/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/yoshioterada.wordpress.com/754/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/yoshioterada.wordpress.com/754/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/yoshioterada.wordpress.com/754/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/yoshioterada.wordpress.com/754/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/yoshioterada.wordpress.com/754/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/yoshioterada.wordpress.com/754/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/yoshioterada.wordpress.com/754/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/yoshioterada.wordpress.com/754/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yoshio3.com&#038;blog=11776107&#038;post=754&#038;subd=yoshioterada&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://yoshio3.com/2010/03/14/servlet-3-0-web-fragment-xml-%e3%81%ab%e3%82%88%e3%82%8b%e8%a8%ad%e5%ae%9a/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f5b5cf8e8e2343a2915d94e1ca6f26e2?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">yosshi</media:title>
		</media:content>
	</item>
		<item>
		<title>Servlet 3.0 の新機能概要</title>
		<link>http://yoshio3.com/2010/03/14/servlet-3-0-%e3%81%ae%e6%96%b0%e6%a9%9f%e8%83%bd%e6%a6%82%e8%a6%81/</link>
		<comments>http://yoshio3.com/2010/03/14/servlet-3-0-%e3%81%ae%e6%96%b0%e6%a9%9f%e8%83%bd%e6%a6%82%e8%a6%81/#comments</comments>
		<pubDate>Sat, 13 Mar 2010 17:26:21 +0000</pubDate>
		<dc:creator>Yoshio Terada</dc:creator>
				<category><![CDATA[Application Server/GlassFish]]></category>
		<category><![CDATA[GlassFish]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Comet]]></category>
		<category><![CDATA[Java EE]]></category>
		<category><![CDATA[Servlet]]></category>

		<guid isPermaLink="false">http://yoshio3.com/?p=743</guid>
		<description><![CDATA[Servlet 3.0 の新機能をプレゼン形式でまとめてみました。個々の機能に関する詳細は別途記載する予定です [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yoshio3.com&#038;blog=11776107&#038;post=743&#038;subd=yoshioterada&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Servlet 3.0 の新機能をプレゼン形式でまとめてみました。個々の機能に関する詳細は別途記載する予定ですが、ここでかんたんに概要を説明します。</p>
<p>Servlet 3.0 は Servlet 2.5 からかなり多くの改良が施されています。<br />
Java SE 5 から利用可能になった、アノテーションを利用し、今まで web.xml に記載していた Servlet や Filter 等の設定をアノテーションで記載できるようになり開発生産性が大幅に向上しました。<br />
また、プラガビリティの向上として、外部のフレームワークやライブラリの設定を web.xml 以外のファイル (web-fragment.xml) に記載できるようになったため、web.xml の肥大化を抑制でき、またフレームワークの設定管理が容易になっています。<br />
その他では Servlet API 自身でマルチパートを扱えるようになったため、Servlet API だけでファイルをアップロードすることができるようになっています。<br />
さらに、Servlet 3.0 から非同期処理を実現できるようになっています。この非同期処理機能は、Comet/Reverse Ajax 等のアプリケーションを実装できる他、DB アクセス等とても処理に時間がかかるような処理を非同期で処理する事ができるようになります。例えば、HttpServlet のスレッドとは別のスレッドで非同期に実現する事で DB が高負荷時に HttpServlet の最大スレッド数に到達し Web のアクセスが不可になる状態を防ぐ事もできます。<br />
その他では、HttpServletRequest に login/logout/authenticate のメソッドが含まれ、プログラムを利用しログイン／ログアウト処理を実装できるようになった他、@ServletSecurity を使用して web.xml に記載していた &lt; security-constraint &gt; の設定をプログラム中で宣言できるようになっています。</p>
<p>改良された、Servlet 3.0 を是非お試しください。</p>
<p><img class="aligncenter" title="Servlet 3.0 の概要" src="http://farm3.static.flickr.com/2799/4428996841_e9f78d37b1.jpg" alt="" width="500" height="375" /></p>
<p><img class="aligncenter" title="Servlet 3.0 の主な特徴" src="http://farm3.static.flickr.com/2690/4428996905_50fcf62531.jpg" alt="" width="500" height="375" /></p>
<p><img class="aligncenter" title="かんたん開発" src="http://farm5.static.flickr.com/4066/4429762182_8c54069de8.jpg" alt="" width="500" height="375" /></p>
<p><img class="aligncenter" title="かんたん開発" src="http://farm5.static.flickr.com/4054/4429762238_d6d0b5e017.jpg" alt="" width="500" height="375" /></p>
<p><img class="aligncenter" title="Servlet 3.0 のサンプル" src="http://farm5.static.flickr.com/4072/4428997109_db78f82b93.jpg" alt="" width="500" height="375" /></p>
<p><img class="aligncenter" title="拡張性" src="http://farm5.static.flickr.com/4016/4429762372_b3b8b42ea4.jpg" alt="" width="500" height="375" /></p>
<p><img class="aligncenter" title="拡張性" src="http://farm5.static.flickr.com/4022/4429762470_00c8fe87eb.jpg" alt="" width="500" height="375" /></p>
<p><img class="aligncenter" title="設定ファイルによるコンテナ拡張" src="http://farm3.static.flickr.com/2803/4429762550_fb03afc744.jpg" alt="" width="500" height="375" /><br />
web.fragment.xml に関する詳細は <A HREF="http://yoshio3.com/2010/03/14/servlet-3-0-web-fragment-xml-%E3%81%AB%E3%82%88%E3%82%8B%E8%A8%AD%E5%AE%9A/">「Servlet 3.0 web-fragment.xml による設定」</A> のエントリをご参照ください。</p>
<p><img class="aligncenter" title="プログラムによるコンテナの拡張" src="http://farm5.static.flickr.com/4032/4429762630_7e5c13e5b6.jpg" alt="" width="500" height="375" /></p>
<p><img class="aligncenter" title="プログラムによるコンテナの拡張" src="http://farm3.static.flickr.com/2701/4428997421_1cc21b011d.jpg" alt="" width="500" height="375" /></p>
<p><img class="aligncenter" title="マルチパート対応" src="http://farm3.static.flickr.com/2739/4429762742_e8a262bb27.jpg" alt="" width="500" height="375" /><br />
マルチパートの詳細は　<A HREF="http://yoshio3.com/2010/03/11/servlet-3-0-file-upload-%E6%A9%9F%E8%83%BD/">「Servlet 3.0 File Upload 機能」</A>　のエントリをご参照ください。</p>
<p><img class="aligncenter" title="非同期処理の概要" src="http://farm5.static.flickr.com/4047/4428997575_5361a809c0.jpg" alt="" width="500" height="375" /></p>
<p><img class="aligncenter" title="非同期処理の実装例" src="http://farm5.static.flickr.com/4010/4428997649_987fe16f7c.jpg" alt="" width="500" height="375" /></p>
<p><img class="aligncenter" title="セキュリティ" src="http://farm5.static.flickr.com/4026/4429762932_bf94e727ee.jpg" alt="" width="500" height="375" /></p>
<br />カテゴリー:<a href='http://yoshio3.com/category/application-serverglassfish/'>Application Server/GlassFish</a>, <a href='http://yoshio3.com/category/glassfish/'>GlassFish</a>, <a href='http://yoshio3.com/category/java/'>Java</a> Tagged: <a href='http://yoshio3.com/tag/comet/'>Comet</a>, <a href='http://yoshio3.com/tag/java-ee/'>Java EE</a>, <a href='http://yoshio3.com/tag/servlet/'>Servlet</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/yoshioterada.wordpress.com/743/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/yoshioterada.wordpress.com/743/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/yoshioterada.wordpress.com/743/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/yoshioterada.wordpress.com/743/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/yoshioterada.wordpress.com/743/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/yoshioterada.wordpress.com/743/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/yoshioterada.wordpress.com/743/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/yoshioterada.wordpress.com/743/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/yoshioterada.wordpress.com/743/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/yoshioterada.wordpress.com/743/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/yoshioterada.wordpress.com/743/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/yoshioterada.wordpress.com/743/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/yoshioterada.wordpress.com/743/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/yoshioterada.wordpress.com/743/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yoshio3.com&#038;blog=11776107&#038;post=743&#038;subd=yoshioterada&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://yoshio3.com/2010/03/14/servlet-3-0-%e3%81%ae%e6%96%b0%e6%a9%9f%e8%83%bd%e6%a6%82%e8%a6%81/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f5b5cf8e8e2343a2915d94e1ca6f26e2?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">yosshi</media:title>
		</media:content>

		<media:content url="http://farm3.static.flickr.com/2799/4428996841_e9f78d37b1.jpg" medium="image">
			<media:title type="html">Servlet 3.0 の概要</media:title>
		</media:content>

		<media:content url="http://farm3.static.flickr.com/2690/4428996905_50fcf62531.jpg" medium="image">
			<media:title type="html">Servlet 3.0 の主な特徴</media:title>
		</media:content>

		<media:content url="http://farm5.static.flickr.com/4066/4429762182_8c54069de8.jpg" medium="image">
			<media:title type="html">かんたん開発</media:title>
		</media:content>

		<media:content url="http://farm5.static.flickr.com/4054/4429762238_d6d0b5e017.jpg" medium="image">
			<media:title type="html">かんたん開発</media:title>
		</media:content>

		<media:content url="http://farm5.static.flickr.com/4072/4428997109_db78f82b93.jpg" medium="image">
			<media:title type="html">Servlet 3.0 のサンプル</media:title>
		</media:content>

		<media:content url="http://farm5.static.flickr.com/4016/4429762372_b3b8b42ea4.jpg" medium="image">
			<media:title type="html">拡張性</media:title>
		</media:content>

		<media:content url="http://farm5.static.flickr.com/4022/4429762470_00c8fe87eb.jpg" medium="image">
			<media:title type="html">拡張性</media:title>
		</media:content>

		<media:content url="http://farm3.static.flickr.com/2803/4429762550_fb03afc744.jpg" medium="image">
			<media:title type="html">設定ファイルによるコンテナ拡張</media:title>
		</media:content>

		<media:content url="http://farm5.static.flickr.com/4032/4429762630_7e5c13e5b6.jpg" medium="image">
			<media:title type="html">プログラムによるコンテナの拡張</media:title>
		</media:content>

		<media:content url="http://farm3.static.flickr.com/2701/4428997421_1cc21b011d.jpg" medium="image">
			<media:title type="html">プログラムによるコンテナの拡張</media:title>
		</media:content>

		<media:content url="http://farm3.static.flickr.com/2739/4429762742_e8a262bb27.jpg" medium="image">
			<media:title type="html">マルチパート対応</media:title>
		</media:content>

		<media:content url="http://farm5.static.flickr.com/4047/4428997575_5361a809c0.jpg" medium="image">
			<media:title type="html">非同期処理の概要</media:title>
		</media:content>

		<media:content url="http://farm5.static.flickr.com/4010/4428997649_987fe16f7c.jpg" medium="image">
			<media:title type="html">非同期処理の実装例</media:title>
		</media:content>

		<media:content url="http://farm5.static.flickr.com/4026/4429762932_bf94e727ee.jpg" medium="image">
			<media:title type="html">セキュリティ</media:title>
		</media:content>
	</item>
		<item>
		<title>ここから始める Java EE 6</title>
		<link>http://yoshio3.com/2010/02/26/%e3%81%93%e3%81%93%e3%81%8b%e3%82%89%e5%a7%8b%e3%82%81%e3%82%8b-java-ee-6-2/</link>
		<comments>http://yoshio3.com/2010/02/26/%e3%81%93%e3%81%93%e3%81%8b%e3%82%89%e5%a7%8b%e3%82%81%e3%82%8b-java-ee-6-2/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 06:33:12 +0000</pubDate>
		<dc:creator>Yoshio Terada</dc:creator>
				<category><![CDATA[Application Server/GlassFish]]></category>
		<category><![CDATA[GlassFish]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Java EE]]></category>
		<category><![CDATA[NetBeans]]></category>

		<guid isPermaLink="false">http://yoshio3.com/?p=713</guid>
		<description><![CDATA[2009年12月に Java EE 6 がリリースされて、約３ヶ月経ちました。Java EE 6 にはかなり多 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yoshio3.com&#038;blog=11776107&#038;post=713&#038;subd=yoshioterada&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>2009年12月に Java EE 6 がリリースされて、約３ヶ月経ちました。Java EE 6 にはかなり多くの改善がみられますが、どこから始めればいいのかわからない方に、JSF2,JPA2,EJB 3.1を使ったかんたんな Java EE 6 アプリケーションの書き方を紹介します。</p>
<p>Java EE 6 には非常にたくさんの技術が含まれているので一度に全てを理解することは大変だと思いますが、まずはこのサンプルを通じて、JSF,JPA,EJB にどのような変更が加わったのか、またどのような点が楽になったのか等を理解して頂ければと思います。</p>
<table border="1">
<tbody>
<tr>
<td>開発／実行環境：<br />
開発環境：NetBeans 6.8<br />
実行環境：Oracle GlassFish Server v3</td>
</tr>
</tbody>
</table>
<p>（上記は別途インストールしておいてください。）</p>
<h2>サンプルアプリケーションの概要：</h2>
<p>コードを書く前にこれから作成するサンプルアプリケーションの概要について説明します。このアプリケーションはとても簡単なアプリケーションでユーザ（データ）を登録して参照するだけという、いたってかんたんなアプリケーションです。また処理フローもとてもシンプルです。</p>
<p><a href="http://farm3.static.flickr.com/2716/4387372234_59d91e8709_o.png"><img title="サンプルアプリケーションの処理フロー" src="http://farm3.static.flickr.com/2716/4387372234_99c6ec3a79.jpg" alt="サンプルアプリケーションの処理フロー" width="375" height="196" /></a></p>
<p>アプリケーションの完成予想イメージは下記です。ユーザ登録画面で「作成」ボタンを押下しデータを登録した後、一覧表示画面が表示されます。また一覧表示画面中の「新規作成」のリンクを押下すると登録画面に遷移します。</p>
<p><img title="サンプルアプリケーションの完成イメージ" src="http://farm5.static.flickr.com/4043/4386609853_50e184f4bb_o.png" alt="サンプルアプリケーションの完成イメージ" width="436" height="208" /></p>
<h2>１．新規プロジェクトの作成</h2>
<p>それでは早速プロジェクトを作成していきます。今回作成するアプリケーションは、EJBを含んでいますが新規プロジェクトの作成時「Web アプリケーション」を選択して作成することにします。</p>
<table border="1" bgcolor="GRAY">
<tbody>
<tr>
<td><span style="color:white;">補足：<br />
Java EE 6 におけるパッケージ構成の変更点を紹介します。過去の Java EE のバージョンでは下記のように EJB を ear にまとめたり、JSF/Servlet 等を war にまとめたりといったようにパッケージ構成が面倒でした。Java EE 6 からはこのようなパッケージ化の必要はなくなり、EJB も war に含めてデプロイできるようになりました。&nbsp;</p>
<p><a href="http://farm5.static.flickr.com/4055/4386609663_1b3c881cd6_o.png"><img title="パッケージの簡略化" src="http://farm5.static.flickr.com/4055/4386609663_8de10a5c23.jpg" alt="パッケージの簡略化" width="375" height="280" /></a></p>
<p></span></td>
</tr>
</tbody>
</table>
<p>それでは、メニューから「ファイル」→「新規プロジェクト(W)…」→「Java Web」→「Web アプリケーション」を選択し、「次へ＞」ボタンを押下してください。</p>
<p><a href="http://farm5.static.flickr.com/4061/4387371496_8635dda665_o.png"><img title="新規プロジェクトの作成" src="http://farm5.static.flickr.com/4061/4387371496_939e506cef.jpg" alt="新規プロジェクトの作成" width="500" height="345" /></a></p>
<p>プロジェクト名に「PersonManagement」を入力し「次へ＞」ボタンを押下します。</p>
<p><a href="http://farm5.static.flickr.com/4018/4386609217_280471ee85_o.png"><img title="新規プロジェクト作成" src="http://farm5.static.flickr.com/4018/4386609217_d95e3abdbd.jpg" alt="新規プロジェクト作成" width="500" height="280" /></a></p>
<p>次に、「サーバと設定」で配備するアプリケーションサーバとJava EE のバージョンを選択します。ここでは、「GlassFish v3 ドメイン」と「Java EE 6 Web」を選択し「次へ＞」ボタンを押下します。</p>
<p><a href="http://farm3.static.flickr.com/2801/4387371578_d881500f9e_o.png"><img title="稼働サーバとフレームワークの選択" src="http://farm3.static.flickr.com/2801/4387371578_fa4474d953.jpg" alt="稼働サーバとフレームワークの選択" width="500" height="280" /></a></p>
<p>次に、使用するフレームワークを選択します。今回は、「JavaServer Fcaces」を使用しますのでこれにチェックを付け「完了(F)」ボタンを押下します。</p>
<p><a href="http://farm3.static.flickr.com/2792/4386609291_6cf11359ca_o.png"><img title="フレームワークの選択" src="http://farm3.static.flickr.com/2792/4386609291_cca7d30341.jpg" alt="フレームワークの選択" width="500" height="280" /></a></p>
<p>プロジェクトを作成すると下記のような画面が表示されます。</p>
<p><a href="http://farm5.static.flickr.com/4033/4387371682_2b76c4570a_o.png"><img title="プロジェクト作成完了" src="http://farm5.static.flickr.com/4033/4387371682_243467ab86.jpg" alt="プロジェクト作成完了" width="500" height="332" /></a></p>
<h2>２． JPA 2.0：Entity Bean の作成</h2>
<p>新規プロジェクトを作成後、Entity Bean を作成します。Java EE 5 から Entity CMP 2.x に代わり JPA 1.0 が登場し、DBに対する持続性のコード記述がかなり楽になりました。JPA 2.0 ではさらに扱いやすくなり、機能面でも改善が施されています。（JPA 2.0 の新機能の詳細は別途記載する予定です。また今回はとても簡単なサンプルのためJAP 2.0の新機能はあまり使用していません。JPA 1.0と同等レベルの記述内容）</p>
<p>それでは、実際に Entity Bean を作成してみましょう。メニューから「ファイル」→「新規ファイル(N)…」→「持続性」を選択してください。</p>
<p>NetBeans を利用すると既存のデータベースのテーブルから Entity クラスを自動的に生成する事ができます。既に DB テーブルを作成している場合は「データベースからのエンティティークラス」を選択して作成してください。NetBeans を使う上で、この機能は大変便利です。私も普段は先に DB のテーブルを作成して、Entity クラスは NetBeans で自動生成しますので一から Entity クラスを作成する事はあまりしません。是非お試しください。</p>
<p>今回、私は DB のテーブルが作成されていない状態で新規にエンティティークラスを生成しますので「エンティティークラス」を選択し「次へ＞」ボタンを押下します。この方法では、エンティティークラスを先に作成した後、エンティティクラスに該当するテーブルを DB 上に後から構築します（Entity クラスを元にテーブルを自動生成することもできます）。</p>
<p><a href="http://farm5.static.flickr.com/4051/4387371716_03dab5379c_o.png"><img title="エンティティークラスの作成" src="http://farm5.static.flickr.com/4051/4387371716_070ef86ef8.jpg" alt="エンティティークラスの作成" width="500" height="345" /></a></p>
<p>ここで新しいエンティティークラス名「Person」、パッケージ名「ent」を入力します。「主キー型」はこのテーブルの主キーの型を選択します。Person を ID で管理しますので、そのまま、「Long」型を設定します。</p>
<p><a href="http://farm5.static.flickr.com/4042/4386609403_ebb3d06991_o.png"><img title="エンティティクラスの作成" src="http://farm5.static.flickr.com/4042/4386609403_f35a2c9768.jpg" alt="エンティティクラスの作成" width="500" height="345" /></a></p>
<p>「完了(F)」ボタンを押下する前に１点注意してください。ワーニングで「プロジェクトに持続性ユニットがありません。エンティティークラスを持続さ…」というメッセージが表示されています。これはこのエンティティクラスに対する持続性ユニットが存在していない事を意味しています。そこで「持続性ユニットを作成…」ボタンを押下し、このエンティティクラスに紐づく持続性ユニットを作成します。ボタンを押下すると下記の画面が表示されます。</p>
<p><a href="http://farm5.static.flickr.com/4034/4386609437_dca07c0f69_o.png"><img title="持続性ユニットの作成" src="http://farm5.static.flickr.com/4034/4386609437_3ca1fc865b.jpg" alt="持続性ユニットの作成" width="500" height="317" /></a></p>
<p>持続性プロバイダとして JPA 2.0 の参照実装である「EclipseLink(JPA 2.0)(デフォルト)」と、データソースを選択します。また表生成の方針ですが、「作成」を選択すると自動的に DB にテーブルを作成します。全ての入力が完了した後、最後に「作成」ボタンを押下します。<br />
この時、後のプログラミング時に使用しますので、入力した持続性ユニット名（PersonManagementPU）を覚えておいてください。</p>
<p>「作成」ボタンを押下すると、「新規エンティティ作成画面」に戻ってきますが、持続性ユニットに関するワーニングが消えたことを確認した後、最後に「完了(F)」ボタンを押下してください。ボタンを押下すると入力された情報を元に ID のみを持つ Person エンティティのひな形が自動生成されます。また同時に、構成ファイル配下に、持続性ユニットの設定ファイル persistence.xmlが自動生成されます。</p>
<p>作成された Entity クラス(Person)のひな形を編集していきます。</p>
<p>ソースコードを確認すると @Entity のアノテーションが自動的に付加されている事に気づきます。このアノテーションを付加することによりコンパイラや、EJB コンテナが本クラスをエンティティクラスと解釈してくれるようになります。</p>
<p>名前、住所、電話番号、年齢をあつかえるようにフィールドを追加し、それぞれに対するセッタ、ゲッタメソッドを記載してください。また、@NamedQuery で JPQL を記載し、DBに登録されている全ての Person を取得できるようにします。</p>
<p><pre class="brush: java;">
package ent;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQuery;&amp;nbsp;

@Entity
@NamedQuery(name=&quot;findAllPerson&quot;, query=&quot;SELECT p FROM Person p&quot;)
public class Person implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    @Column(nullable=false,length=256)
    private String name;

    @Column(nullable=false,length=256)
    private String address1;

    @Column(nullable=false,length=12)
    private String telephone;

    @Column(nullable=false)
    private Long age;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (id != null ? id.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        if (!(object instanceof Person)) {
            return false;
        }
        Person other = (Person) object;
        if ((this.id == null &amp;amp;&amp;amp; other.id != null) || (this.id != null &amp;amp;&amp;amp; !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return &quot;entity.Person[id=&quot; + id + &quot;]&quot;;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAddress1() {
        return address1;
    }

    public void setAddress1(String address1) {
        this.address1 = address1;
    }

    public String getTelephone() {
        return telephone;
    }

    public void setTelephone(String telephone) {
        this.telephone = telephone;
    }

    public Long getAge() {
        return age;
    }

    public void setAge(Long age) {
        this.age = age;
    }
}
</pre></p>
<p>以上で、このサンプルアプリケーションに必要なエンティティクラスはできました。</p>
<h2>３．EJB 3.1：ステートレスセッション Bean の作成</h2>
<p>エンティティクラスを生成したので、次に EJB (ステートレス・セッション Bean) を作成します。「ファイル」→「新規ファイル(N)…」→「Java EE」→「セッション Bean」を選択し、「次へ＞」ボタンを押下してください。</p>
<p><a href="http://farm5.static.flickr.com/4014/4386609481_fdee49cab3_o.png"><img title="EJB セッション Bean の作成" src="http://farm5.static.flickr.com/4014/4386609481_d265ee31c9.jpg" alt="EJB セッション Bean の作成" width="500" height="345" /></a></p>
<p>ボタンを押下すると下記の画面が表示されます。ここで「EJB 名(N)」、「パッケージ(K)」を入力し「完了(F)」ボタンを押下します。</p>
<p><a href="http://farm5.static.flickr.com/4015/4386609511_72bed28a52_o.png"><img title="ステートレスセッション Bean の作成" src="http://farm5.static.flickr.com/4015/4386609511_c83e412d8e.jpg" alt="ステートレスセッション Bean の作成" width="500" height="345" /></a></p>
<table border="1" bgcolor="GRAY">
<tbody>
<tr>
<td><span style="color:white;">補足：<br />
上記画面を確認するとローカルインタフェース、リモートインタフェースが選択できるようになっています。<br />
EJB 3.1 からローカルインタフェースがオプション化されインタフェースを作成する必要がなくなりました。EJB 3.0 では下記の例のようにインタフェースを定義し、それを実装しなければなりませんでしたが、EJB 3.1 からはアノテーションを付加するだけでコンテナが理解してくれるようになります。&nbsp;</p>
<p>EJB 3.0 でのローカルインタフェースの実装例</p>
<p><img title="EJB 3.0" src="http://farm5.static.flickr.com/4069/4387372066_d7bb3f0d1b.jpg" alt="EJB 3.0" width="375" height="280" /></p>
<p>実際にコードで書くと下記のようになります。<br />
<pre class="brush: java;">
public interface Hello {
    public String sayHello();
}

@Stateless
public class HelloBean implements Hello {
    public String sayHello() { return &quot;hello&quot;; }
}

EJB の利用時

@EJB Hello helloRef;
    ...
    helloRef.sayHello();
</pre></p>
<p>これが、EJB 3.1 では下記のようにインタフェースを定義する必要はなくなります。</p>
<p style="text-align:center;">&nbsp;</p>
<p><img title="EJB 3.1" src="http://farm5.static.flickr.com/4003/4387372112_465d84a623.jpg" alt="EJB 3.1" width="375" height="280" /></p>
<p>EJB 3.1 を利用する時のコードは下記となります。</p>
<p><img title="EJB 3.1" src="http://farm5.static.flickr.com/4018/4387372136_dafbfa7429.jpg" alt="EJB 3.1" width="375" height="280" /></p>
<p></span></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>それではコードを編集していきましょう。今回は、データの検索と追加を行いますので、それぞれの処理を行う２つのメソッドを実装しています。まず、@PersistenceContextのアノテーションで、（JPA Entity クラスを作成した時に作成した持続性ユニット名。persistence.xml に記載されている。）持続性ユニット名(&#8220;PersonManagementPU&#8221;)を記載します。これにより持続機能を持った EntityManager のオブジェクト(em)がセットされます。<br />
<pre class="brush: java;">
package pejb;

import ent.Person;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

@Stateless
public class PersonEJB {

    @PersistenceContext(unitName=&quot;PersonManagementPU&quot;)
    private EntityManager em;

    public List&lt;Person&gt; findAllPersons(){
    //Entity(Person)クラスの @NamedQuery の記載に基づき検索
        Query query = em.createNamedQuery(&quot;findAllPerson&quot;);
        return (List&lt;Person&gt;) query.getResultList();
    }

    public Person createPerson(Person person){
        em.persist(person);
        return person;
    }
}
</pre></p>
<h2>４．JSF：Managed Bean の作成</h2>
<p>EJBと、Entity を作成したので、JSF から利用する Managed Bean を作成しましょう。「ファイル」→「新規ファイル(N)…」→「JavaServer Faces」→「JSF 管理対象 Bean」を選択し「次へ＞」ボタンを押下してください。</p>
<p><a href="http://farm5.static.flickr.com/4024/4389244246_afaffca9c6_o.png"><img class="aligncenter" title="Managed Bean の作成" src="http://farm5.static.flickr.com/4024/4389244246_68eac73ca5.jpg" alt="" width="500" height="424" /></a></p>
<p>「クラス名(N)」、「パッケージ(K)」を入力し「完了(F)」ボタンを押下します。</p>
<table border="1" bgcolor="GRAY">
<tbody>
<tr>
<td><span style="color:white;">補足：<br />
JSF 2.0 からは下記のような faces-config.xml の設定ファイルがオプション化されました。そこで Managed Bean の設定や画面遷移を XML ファイルに記載する必要はなく、アノテーションを利用しプログラム上で実現することができるようになりました。&nbsp;</p>
<p>JSF1.2 までの faces-confg.xml の設定例：</p>
<table border="1">
<tbody>
<tr>
<td><span style="color:white;"> &lt;managed-bean&gt;<br />
&lt;managed-bean-name&gt;PersonController&lt;/managed-bean-name&gt;<br />
&lt;managed-bean-class&gt;PersonController&lt;/managed-bean-class&gt;<br />
&lt;managed-bean-scope&gt;request&lt;/managed-bean-scope&gt;<br />
&lt;/managed-bean&gt;<br />
&lt;navigation-rule&gt;<br />
&lt;from-view-id&gt;/foo.jsp&lt;/from-view-id&gt;<br />
&lt;navigation-case&gt;<br />
&lt;from-outcome&gt;ok&lt;/from-outcome&gt;<br />
&lt;to-view-id&gt;/bar.jsp&lt;/to-view-id&gt;<br />
&lt;/navigation-case&gt;<br />
&lt;/navigation-rule&gt;</span></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p></span></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>コードを編集していきましょう。作成するクラスが Managed Bean であることをコンテナに理解させるため、@ManagedBean のアノテーションを利用します。アノテーションを指定する際、&#8221;name&#8221; 属性は必須で Managed Bean を識別する名前を入力します。</p>
<p><pre class="brush: java;">
package mbean;

import ent.Person;
import pejb.PersonEJB;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.ejb.EJB;

@ManagedBean(name=&quot;PersonController&quot;)
@RequestScoped
public class PersonController {

    public PersonController() {
    }

    @EJB
    private PersonEJB personEJB;

    private Person person = new Person();
    private List&lt;Person&gt; personList = new ArrayList&lt;Person&gt;();

    //Facelets の action=&quot;#{PersonController.doNew} により画面遷移
    public String doNew(){
        return &quot;createPerson.xhtml&quot;;
    }

    //Facelets の action=&quot;#{PersonController.doCreatePerson} により画面遷移
    public String doCreatePerson(){
        //画面から入力された Person を DB に登録
        setPerson(personEJB.createPerson(getPerson()));
        //DB に登録されている全 Person を personList に設定
        setPersonList(personEJB.findAllPersons());
        return &quot;listPersons.xhtml&quot;;
    }

    public Person getPerson() {
        return person;
    }

    public void setPerson(Person person) {
        this.person = person;
    }

    public List&lt;Person&gt; getPersonList() {
        return personList;
    }

    public void setPersonList(List&lt;Person&gt; personList) {
        this.personList = personList;
    }
}
</pre></p>
<h2>５．JSF 2.0: ベージの作成</h2>
<p>最後に、表示画面を作成します。JSF 2.0 から facelet を xhtml で記載できるようになりました。</p>
<p>「ファイル」→「新規ファイル(N)…」→「JavaServer Faces」を選択し「次へ＞」ボタンを<br />
押下してください。</p>
<p><a href="http://farm5.static.flickr.com/4059/4386609553_06f663cb7f_o.png"><img title="JSF 表示画面の作成" src="http://farm5.static.flickr.com/4059/4386609553_bd22b79bcc.jpg" alt="JSF 表示画面の作成" width="500" height="345" /></a></p>
<p>ファイル名 (createPerson.xhtml) を入力すると自動的に .xhtml の拡張子が付加されます、最後に「完了(F)」ボタンを押下します。</p>
<p><a href="http://farm5.static.flickr.com/4028/4387371960_aea70110bb_o.png"><img title="JSF 表示画面の作成" src="http://farm5.static.flickr.com/4028/4387371960_5e6b798339.jpg" alt="JSF 表示画面の作成" width="500" height="297" /></a></p>
<p>自動生成されたひな形を編集して下記のコードを記載してください。Facelets で扱えるタグ等は別途紹介する予定ですが、みていただければわかるとおり、HTML も記載する事ができますし、スタイルシート等を記載することも可能です。また、JSF 2.0 から Ajax をサポートしていますので、Ajax のコードを利用してサーバと通信する事もできるようになります。<br />
<pre class="brush: xml;">
&lt;?xml version='1.0' encoding='UTF-8' ?&gt;
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;
      xmlns:h=&quot;http://java.sun.com/jsf/html&quot;&gt;
      &lt;h:head&gt;
        &lt;title&gt;Facelet Title&lt;/title&gt;
    &lt;/h:head&gt;
    &lt;h:body&gt;
        &lt;h:form&gt;
            &lt;table&gt;
                &lt;tr&gt;
                    &lt;td&gt;
                &lt;h:outputLabel value=&quot;名前：&quot;/&gt;
                &lt;/td&gt;
                &lt;td&gt;
                &lt;h:inputText value=&quot;#{PersonController.person.name}&quot;/&gt;
                &lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td&gt;
                &lt;h:outputLabel value=&quot;住所&quot;/&gt;
                &lt;/td&gt;
                &lt;td&gt;
                &lt;h:inputText value=&quot;#{PersonController.person.address1}&quot;/&gt;
                &lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td&gt;
                &lt;h:outputLabel value=&quot;電話番号&quot;/&gt;
                &lt;/td&gt;
                &lt;td&gt;
                &lt;h:inputText value=&quot;#{PersonController.person.telephone}&quot;/&gt;
                &lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td&gt;
                &lt;h:outputLabel value=&quot;年齢&quot;/&gt;
                &lt;/td&gt;
                &lt;td&gt;
                &lt;h:inputText value=&quot;#{PersonController.person.age}&quot;/&gt;
                &lt;/td&gt;
                &lt;/tr&gt;
            &lt;/table&gt;
            &lt;h:commandButton value=&quot;作成&quot; action=&quot;#{PersonController.doCreatePerson}&quot;/&gt;
        &lt;/h:form&gt;
    &lt;/h:body&gt;
&lt;/html&gt;
</pre></p>
<p>最後に、登録された一覧を表示する画面を作成します。<br />
「ファイル」→「新規ファイル(N)…」→「JavaServer Faces」を選択し「次へ＞」ボタンを<br />
押下してください。</p>
<p><a href="http://farm5.static.flickr.com/4059/4386609553_06f663cb7f_o.png"><img title="JSF 表示画面の作成" src="http://farm5.static.flickr.com/4059/4386609553_bd22b79bcc.jpg" alt="JSF 表示画面の作成" width="500" height="345" /></a></p>
<p>ファイル名(listPersons)を入力し「完了(F)」ボタンを押下します。</p>
<p><pre class="brush: xml;">
&lt;?xml version='1.0' encoding='UTF-8' ?&gt;
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;
      xmlns:h=&quot;http://java.sun.com/jsf/html&quot;
      xmlns:f=&quot;http://java.sun.com/jsf/core&quot;&gt;
      &lt;h:head&gt;
        &lt;title&gt;Facelet Title&lt;/title&gt;
    &lt;/h:head&gt;
    &lt;h:body&gt; 

        &lt;h:dataTable value=&quot;#{PersonController.personList}&quot; var=&quot;psn&quot; border=&quot;1&quot;&gt;
            &lt;h:column&gt;
                &lt;f:facet name=&quot;header&quot;&gt;
                    &lt;h:outputText value=&quot;名前&quot;/&gt;
                &lt;/f:facet&gt;
                &lt;h:outputText value=&quot;#{psn.name}&quot;/&gt;
            &lt;/h:column&gt;

            &lt;h:column&gt;
                &lt;f:facet name=&quot;header&quot;&gt;
                    &lt;h:outputText value=&quot;住所&quot;/&gt;
                &lt;/f:facet&gt;
                &lt;h:outputText value=&quot;#{psn.address1}&quot;/&gt;
            &lt;/h:column&gt;

            &lt;h:column&gt;
                &lt;f:facet name=&quot;header&quot;&gt;
                    &lt;h:outputText value=&quot;電話番号&quot;/&gt;
                &lt;/f:facet&gt;
                &lt;h:outputText value=&quot;#{psn.telephone}&quot;/&gt;
            &lt;/h:column&gt;

            &lt;h:column&gt;
                &lt;f:facet name=&quot;header&quot;&gt;
                    &lt;h:outputText value=&quot;年齢&quot;/&gt;
                &lt;/f:facet&gt;
                &lt;h:outputText value=&quot;#{psn.age}&quot;/&gt;
            &lt;/h:column&gt;
        &lt;/h:dataTable&gt;
        &lt;h:form&gt;
            &lt;h:commandLink action=&quot;#{PersonController.doNew}&quot;&gt;
                新規作成&lt;/h:commandLink&gt;
        &lt;/h:form&gt;
    &lt;/h:body&gt;
&lt;/html&gt;
</pre></p>
<p>以上で、このアプリケーションの実装は完了です。</p>
<p>NetBeans のメニューより「実行(R)」→「主プロジェクトを実行(R)」を選択してください。実行すると自動的にブラウザがオープンしアプリケーションのデフォルトのコンテンツが表示されます。</p>
<p><a href="http://farm5.static.flickr.com/4070/4389319682_013e0fd31a_o.png"><img class="aligncenter" title="デフォルトページ" src="http://farm5.static.flickr.com/4070/4389319682_c7d13bfbac.jpg" alt="" width="500" height="488" /></a></p>
<p>コンテキストルートでアクセスされた時のデフォルトページを変更したい場合は、web.xml ファイルを編集する必要があります。下記のように welcome-file-list を編集してください。</p>
<p><span style="text-decoration:underline;">web.xml の編集</span></p>
<table border="1">
<tbody>
<tr>
<td>&lt;welcome-file-list&gt;<br />
&lt;welcome-file&gt;faces/createPerson.xhtml&lt;/welcome-file&gt;<br />
&lt;/welcome-file-list&gt;</td>
</tr>
</tbody>
</table>
<p>設定を変更した後、もう一度プロジェクトを実行してください。すると下記のように自動的に登録画面が表示されるようになります。</p>
<p><a href="http://farm5.static.flickr.com/4052/4389309630_f8b14d0cf0_o.png"><img class="aligncenter" title="登録画面" src="http://farm5.static.flickr.com/4052/4389309630_1074f55616.jpg" alt="" width="500" height="488" /></a></p>
<p>データを入力して「作成」ボタンを押下してみましょう。下記のように一覧表示画面が表示されれば問題はありません。</p>
<p><a href="http://farm3.static.flickr.com/2743/4388541601_90f8db122b_o.png"><img class="aligncenter" title="一覧表示画面" src="http://farm3.static.flickr.com/2743/4388541601_c5712bdabe.jpg" alt="" width="500" height="488" /></a></p>
<p>最後に、エラーハンドリングについて紹介します。例外が発生した際に特定のエラーページにリダイレクトさせるようにweb.xml の&lt;error-page&gt; タグを記載する必要があります。&lt;exception-type&gt;で、ハンドリングした例外毎にエラーページを表示させる事が可能です。本番環境においては、少なくとも JSF で発生する例外の親である javax.servlet.ServletException を記載してください。</p>
<p><span style="text-decoration:underline;">web.xml の編集</span></p>
<table border="1">
<tbody>
<tr>
<td>&lt;error-page&gt;<br />
&lt;exception-type&gt;javax.servlet.ServletException&lt;/exception-type&gt;<br />
&lt;location&gt;/error.xhtml&lt;/location&gt;<br />
&lt;/error-page&gt;</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>以上で、今回の Java EE 6 のアプリケーション作成は終了です。NetBeans を利用するとウィザードを使って、コードのひな形を作成してくれたり、また設定も極力 XML ファイルを手動で編集しなくても済むようになります。是非お試しください。今回紹介したサンプルは Java EE 6 を利用する上で最も基本的な構成と思います、上記の例を元に色々と修正を加え、DI/CDI や Bean Validation 等を加えて Java EE 6 の機能を是非色々と試してみてください。</p>
<p>最後に、私の環境で作成したNetBeans 6.8 のプロジェクトを下記から入手できるようにしました。<br />
(※ Sun の mediacast.sun.com サイトにファイルをアップロードしていますので、<br />
仮にこのサイトが閉鎖してしまった場合は申し訳ありませんがご了承ください。)</p>
<p>●　<a href="http://mediacast.sun.com/users/yosshi/media/PersonManageNBProject.jar">NetBeans 6.8 のプロジェクト(ソース、設定ファイル等を含む)</a><br />
●　<a href="http://mediacast.sun.com/users/yosshi/media/PersonManagement.war">GlassFish v3 配備用 WARファイル</a></p>
<br />カテゴリー:<a href='http://yoshio3.com/category/application-serverglassfish/'>Application Server/GlassFish</a>, <a href='http://yoshio3.com/category/glassfish/'>GlassFish</a>, <a href='http://yoshio3.com/category/java/'>Java</a> Tagged: <a href='http://yoshio3.com/tag/glassfish/'>GlassFish</a>, <a href='http://yoshio3.com/tag/java-ee/'>Java EE</a>, <a href='http://yoshio3.com/tag/netbeans/'>NetBeans</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/yoshioterada.wordpress.com/713/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/yoshioterada.wordpress.com/713/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/yoshioterada.wordpress.com/713/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/yoshioterada.wordpress.com/713/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/yoshioterada.wordpress.com/713/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/yoshioterada.wordpress.com/713/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/yoshioterada.wordpress.com/713/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/yoshioterada.wordpress.com/713/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/yoshioterada.wordpress.com/713/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/yoshioterada.wordpress.com/713/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/yoshioterada.wordpress.com/713/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/yoshioterada.wordpress.com/713/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/yoshioterada.wordpress.com/713/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/yoshioterada.wordpress.com/713/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yoshio3.com&#038;blog=11776107&#038;post=713&#038;subd=yoshioterada&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://yoshio3.com/2010/02/26/%e3%81%93%e3%81%93%e3%81%8b%e3%82%89%e5%a7%8b%e3%82%81%e3%82%8b-java-ee-6-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f5b5cf8e8e2343a2915d94e1ca6f26e2?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">yosshi</media:title>
		</media:content>

		<media:content url="http://farm3.static.flickr.com/2716/4387372234_99c6ec3a79.jpg" medium="image">
			<media:title type="html">サンプルアプリケーションの処理フロー</media:title>
		</media:content>

		<media:content url="http://farm5.static.flickr.com/4043/4386609853_50e184f4bb_o.png" medium="image">
			<media:title type="html">サンプルアプリケーションの完成イメージ</media:title>
		</media:content>

		<media:content url="http://farm5.static.flickr.com/4055/4386609663_8de10a5c23.jpg" medium="image">
			<media:title type="html">パッケージの簡略化</media:title>
		</media:content>

		<media:content url="http://farm5.static.flickr.com/4061/4387371496_939e506cef.jpg" medium="image">
			<media:title type="html">新規プロジェクトの作成</media:title>
		</media:content>

		<media:content url="http://farm5.static.flickr.com/4018/4386609217_d95e3abdbd.jpg" medium="image">
			<media:title type="html">新規プロジェクト作成</media:title>
		</media:content>

		<media:content url="http://farm3.static.flickr.com/2801/4387371578_fa4474d953.jpg" medium="image">
			<media:title type="html">稼働サーバとフレームワークの選択</media:title>
		</media:content>

		<media:content url="http://farm3.static.flickr.com/2792/4386609291_cca7d30341.jpg" medium="image">
			<media:title type="html">フレームワークの選択</media:title>
		</media:content>

		<media:content url="http://farm5.static.flickr.com/4033/4387371682_243467ab86.jpg" medium="image">
			<media:title type="html">プロジェクト作成完了</media:title>
		</media:content>

		<media:content url="http://farm5.static.flickr.com/4051/4387371716_070ef86ef8.jpg" medium="image">
			<media:title type="html">エンティティークラスの作成</media:title>
		</media:content>

		<media:content url="http://farm5.static.flickr.com/4042/4386609403_f35a2c9768.jpg" medium="image">
			<media:title type="html">エンティティクラスの作成</media:title>
		</media:content>

		<media:content url="http://farm5.static.flickr.com/4034/4386609437_3ca1fc865b.jpg" medium="image">
			<media:title type="html">持続性ユニットの作成</media:title>
		</media:content>

		<media:content url="http://farm5.static.flickr.com/4014/4386609481_d265ee31c9.jpg" medium="image">
			<media:title type="html">EJB セッション Bean の作成</media:title>
		</media:content>

		<media:content url="http://farm5.static.flickr.com/4015/4386609511_c83e412d8e.jpg" medium="image">
			<media:title type="html">ステートレスセッション Bean の作成</media:title>
		</media:content>

		<media:content url="http://farm5.static.flickr.com/4069/4387372066_d7bb3f0d1b.jpg" medium="image">
			<media:title type="html">EJB 3.0</media:title>
		</media:content>

		<media:content url="http://farm5.static.flickr.com/4003/4387372112_465d84a623.jpg" medium="image">
			<media:title type="html">EJB 3.1</media:title>
		</media:content>

		<media:content url="http://farm5.static.flickr.com/4018/4387372136_dafbfa7429.jpg" medium="image">
			<media:title type="html">EJB 3.1</media:title>
		</media:content>

		<media:content url="http://farm5.static.flickr.com/4024/4389244246_68eac73ca5.jpg" medium="image">
			<media:title type="html">Managed Bean の作成</media:title>
		</media:content>

		<media:content url="http://farm5.static.flickr.com/4059/4386609553_bd22b79bcc.jpg" medium="image">
			<media:title type="html">JSF 表示画面の作成</media:title>
		</media:content>

		<media:content url="http://farm5.static.flickr.com/4028/4387371960_5e6b798339.jpg" medium="image">
			<media:title type="html">JSF 表示画面の作成</media:title>
		</media:content>

		<media:content url="http://farm5.static.flickr.com/4059/4386609553_bd22b79bcc.jpg" medium="image">
			<media:title type="html">JSF 表示画面の作成</media:title>
		</media:content>

		<media:content url="http://farm5.static.flickr.com/4070/4389319682_c7d13bfbac.jpg" medium="image">
			<media:title type="html">デフォルトページ</media:title>
		</media:content>

		<media:content url="http://farm5.static.flickr.com/4052/4389309630_1074f55616.jpg" medium="image">
			<media:title type="html">登録画面</media:title>
		</media:content>

		<media:content url="http://farm3.static.flickr.com/2743/4388541601_c5712bdabe.jpg" medium="image">
			<media:title type="html">一覧表示画面</media:title>
		</media:content>
	</item>
		<item>
		<title>Java EE 6 / GlassFish v3 の仮想カンファレンス開催</title>
		<link>http://yoshio3.com/2009/12/09/java-ee-6-glassfish-v3-%e3%81%ae%e4%bb%ae%e6%83%b3%e3%82%ab%e3%83%b3%e3%83%95%e3%82%a1%e3%83%ac%e3%83%b3%e3%82%b9%e9%96%8b%e5%82%ac/</link>
		<comments>http://yoshio3.com/2009/12/09/java-ee-6-glassfish-v3-%e3%81%ae%e4%bb%ae%e6%83%b3%e3%82%ab%e3%83%b3%e3%83%95%e3%82%a1%e3%83%ac%e3%83%b3%e3%82%b9%e9%96%8b%e5%82%ac/#comments</comments>
		<pubDate>Wed, 09 Dec 2009 22:43:22 +0000</pubDate>
		<dc:creator>Yoshio Terada</dc:creator>
				<category><![CDATA[Application Server/GlassFish]]></category>
		<category><![CDATA[GlassFish]]></category>
		<category><![CDATA[Java EE]]></category>
		<category><![CDATA[v3]]></category>

		<guid isPermaLink="false">http://yoshioterada.wordpress.com/2009/12/09/java-ee-6-glassfish-v3-%e3%81%ae%e4%bb%ae%e6%83%b3%e3%82%ab%e3%83%b3%e3%83%95%e3%82%a1%e3%83%ac%e3%83%b3%e3%82%b9%e9%96%8b%e5%82%ac/</guid>
		<description><![CDATA[Java EE 6 / GlassFish v3 に関連した仮想カンファレンス開催が 2009年12月15日  [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yoshio3.com&#038;blog=11776107&#038;post=17&#038;subd=yoshioterada&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><A HREF="https://dct.sun.com/dct/forms/reg_us_2011_956_0.jsp"><br />
<IMG SRC="http://farm5.static.flickr.com/4042/4173865754_437b756b52.jpg"><br />
</A><BR><br />
<BR><br />
Java EE 6 / GlassFish v3 に関連した仮想カンファレンス開催が<BR><br />
2009年12月15日 (日本時間：12/16 夜中 AM1:00 から)されます。<BR><br />
各セッションは３０分〜１時間で開催される予定です。<BR><br />
日本の方は、真夜中から明け方までになるのでその時間帯で、<BR><br />
見ることはできないと思うのですが、今海外のエンジニアに<BR><br />
録画して後から見れるようにして欲しいと要望をだしていますので、<BR><br />
もし、録画されたらそちらを見てみてください。<BR><br />
<BR><br />
<A HREF="http://www.sun.com/software/products/glassfishv3/GlassFish_Conference_Flyer.pdf"><br />
詳細はコチラ</A><BR><br />
<BR><br />
●　Java EE: The Foundation for Your Business (Keynote)<BR><br />
●　Java EE 6: An Overview (Keynote)<BR><br />
●　GlassFish v3 &#8211; Java EE 6 Reference Implementation &amp; Beyond (Keynote)<BR><br />
●　Enterprise Java Beans (EJB) 3.1 Features<BR><br />
●　Jersey, JAX-RS and REST with GlassFish v3<BR><br />
●　Servlet 3.0<BR><br />
●　Java Persistence API (JPA) 2.0<BR><br />
●　Java Server Faces (JSF) 2.0 <BR><br />
●　Web Services in GlassFish<BR><br />
●　Context Dependency and Injection (JSR 299)<BR><br />
●　OSGi in GlassFish v3<BR><br />
●　Dynamic Languages with GlassFish v3<BR><br />
●　Tools for GlassFish v3: NetBeans and Eclipse<BR><br />
●　Grizzly: NIO &amp; Web Framework. Comet using GlassFish<BR><br />
●　Monitoring, Management in GlassFish v3<BR><br />
<BR><br />
日本時間では明日には、GlassFish の FCS(First Customer Shipment) 版がいよいよリリースされます。<BR><br />
また、GA(General Availability) 版はクリスマス前にはリリースされるかと思います。<BR><br />
年末まで各種イベントが目白押しですが、Sun の GlassFish ブロガー達が数多くの情報を<BR><br />
発信します。<BR><br />
<BR><br />
是非、下記のタグもご参照ください。<BR><br />
<BR><br />
<A HREF="http://blogs.sun.com/main/tags/glassfish"></p>
<p>http://blogs.sun.com/main/tags/glassfish</A><BR></p>
<br />カテゴリー:Application Server/GlassFish Tagged: GlassFish, Java EE, v3 <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/yoshioterada.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/yoshioterada.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/yoshioterada.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/yoshioterada.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/yoshioterada.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/yoshioterada.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/yoshioterada.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/yoshioterada.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/yoshioterada.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/yoshioterada.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/yoshioterada.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/yoshioterada.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/yoshioterada.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/yoshioterada.wordpress.com/17/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yoshio3.com&#038;blog=11776107&#038;post=17&#038;subd=yoshioterada&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://yoshio3.com/2009/12/09/java-ee-6-glassfish-v3-%e3%81%ae%e4%bb%ae%e6%83%b3%e3%82%ab%e3%83%b3%e3%83%95%e3%82%a1%e3%83%ac%e3%83%b3%e3%82%b9%e9%96%8b%e5%82%ac/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f5b5cf8e8e2343a2915d94e1ca6f26e2?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">yosshi</media:title>
		</media:content>
	</item>
		<item>
		<title>Java EE 6 について JavaOne 2009 Technical General Session での発表</title>
		<link>http://yoshio3.com/2009/06/05/java-ee-6-%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6-javaone-2009-technical-general-session-%e3%81%a7%e3%81%ae%e7%99%ba%e8%a1%a8/</link>
		<comments>http://yoshio3.com/2009/06/05/java-ee-6-%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6-javaone-2009-technical-general-session-%e3%81%a7%e3%81%ae%e7%99%ba%e8%a1%a8/#comments</comments>
		<pubDate>Fri, 05 Jun 2009 02:08:04 +0000</pubDate>
		<dc:creator>Yoshio Terada</dc:creator>
				<category><![CDATA[Application Server/GlassFish]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Java EE]]></category>

		<guid isPermaLink="false">http://yoshioterada.wordpress.com/2009/06/05/java-ee-6-%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6-javaone-2009-technical-general-session-%e3%81%a7%e3%81%ae%e7%99%ba%e8%a1%a8/</guid>
		<description><![CDATA[Java EE 6 のスペックリードである Robert Chinnici が Java One 2009 の [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yoshio3.com&#038;blog=11776107&#038;post=47&#038;subd=yoshioterada&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><BR><br />
Java EE 6 のスペックリードである <A HREF="http://weblogs.java.net/blog/robc/">Robert Chinnici</A> が<BR><br />
Java One 2009 の Technical General Session で Java EE 6について<BR><br />
話をしています。<BR><br />
<BR><br />
<A HREF="http://link.brightcove.com/services/player/bcpid22207469001?bclid=24494811001&amp;bctid=25089975001"><br />
実際の発表内容：27分30秒あたり</A><BR><br />
<BR><br />
Java EE 6 については 2年程仕様策定等の処理を行ってきましたが、<BR><br />
やっとリリースが近づいてきました。リリース予定は今年の秋(9 月予定)<BR><br />
今回の Robert からの発表内容の概要は下記の通りです。<BR><br />
各ポイントについての詳細は別途記載する予定です。<BR><br />
<BR><br />
ー Java EE 6 のポイント：<BR><br />
　●柔軟性<BR><br />
　　開発環境、本番環境共に柔軟性を持たせる<BR><br />
　●かんたん開発<BR><br />
　　Java EE 5 に引き続き<BR><br />
　●プロファイル<BR><br />
　　用途に応じた機能を抽出しプロファイルとして利用<BR><br />
　●プルーニング<BR><br />
　　不必要な仕様の段階的削除<BR><br />
　●拡張性<BR><br />
　　3rd パーティのライブラリを最小限の設定で利用可能<BR><br />
<BR><br />
ー 技術詳細説明：<BR><br />
　● Self Register<BR><br />
　　 WEB-INF/lib 配下のライブラリを自動的に自己登録可能<BR><br />
　　 (3rd Party,OSSライブラリの再利用がかんたんに)<BR><br />
　● web.xml のフラグメント化（オプション化）<BR><br />
　　 Servlet, Servlet Filter, ContextListener等の記載は不要に<BR><br />
　● JAX-RS (RESTful Web サービスの追加)<BR><br />
　　 Web サービス以外でも利用可能<BR><br />
　● JSF 2.0<BR><br />
　　 Ajax 対応のコンポーネントライブラリが利用可能に<BR><br />
　　 かんたんに Web ページの作成が可能に<BR><br />
　● Asynchronus Servlet<BR><br />
　　 クライアントからの長時間接続が必要なアプリ<BR><br />
　　 サーバ側からの Push/通知が必要なアプリに有用<BR><br />
　　 ハイスケーラビリティ<BR><br />
　● Bean Validation<BR><br />
　　 Bean のバリデーションをあのテーションでかんたんに条件指定が可能<BR><br />
　● EJB 3.1 <BR><br />
　　 EJB 3.0 からのアップデート<BR><br />
　　 シングルトンオブジェクトやタイマーオブジェクトの利用が可能に<BR><br />
<BR><br />
ー デモ：<BR><br />
　● GlassFish Tools Bundle for Eclipse<BR><br />
　● アプリケーションの再デプロイ時に既存のセッション情報を引き継ぎ<BR><br />
　● Web アプリケーション中で OSGi バンドルの利用<BR><br />
<BR><br />
詳細は、別途報告できればと思いますが、概要としては上記のような内容でした。<BR><br />
Roberto の発表内容を今すぐ確認されたい方は上記の動画をご確認ください。<BR><br />
<BR><br />
<BR><br />
基本的には、今まで得られていた情報が多かったのですが、<BR><br />
GlassFish v3 から追加された機能である、アプリケーションの<BR><br />
再デプロイ時に既存のセッション情報を引き継ぐデモや、<BR><br />
独自の OSGi バンドルを作成し利用するデモは今まで情報が<BR><br />
少なかったので、是非自分の目でご覧頂ければと思います。<BR><br />
<BR></p>
<br />カテゴリー:Application Server/GlassFish, Java Tagged: Java EE <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/yoshioterada.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/yoshioterada.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/yoshioterada.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/yoshioterada.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/yoshioterada.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/yoshioterada.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/yoshioterada.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/yoshioterada.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/yoshioterada.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/yoshioterada.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/yoshioterada.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/yoshioterada.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/yoshioterada.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/yoshioterada.wordpress.com/47/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yoshio3.com&#038;blog=11776107&#038;post=47&#038;subd=yoshioterada&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://yoshio3.com/2009/06/05/java-ee-6-%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6-javaone-2009-technical-general-session-%e3%81%a7%e3%81%ae%e7%99%ba%e8%a1%a8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f5b5cf8e8e2343a2915d94e1ca6f26e2?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">yosshi</media:title>
		</media:content>
	</item>
		<item>
		<title>Java EE 6 チュートリアル</title>
		<link>http://yoshio3.com/2009/06/03/java-ee-6-%e3%83%81%e3%83%a5%e3%83%bc%e3%83%88%e3%83%aa%e3%82%a2%e3%83%ab/</link>
		<comments>http://yoshio3.com/2009/06/03/java-ee-6-%e3%83%81%e3%83%a5%e3%83%bc%e3%83%88%e3%83%aa%e3%82%a2%e3%83%ab/#comments</comments>
		<pubDate>Wed, 03 Jun 2009 19:18:43 +0000</pubDate>
		<dc:creator>Yoshio Terada</dc:creator>
				<category><![CDATA[Application Server/GlassFish]]></category>
		<category><![CDATA[Java EE]]></category>

		<guid isPermaLink="false">http://yoshioterada.wordpress.com/2009/06/03/java-ee-6-%e3%83%81%e3%83%a5%e3%83%bc%e3%83%88%e3%83%aa%e3%82%a2%e3%83%ab/</guid>
		<description><![CDATA[Java EE 6 のチュートリアルが下記の URL で公開されています。 http://java.sun.c [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yoshio3.com&#038;blog=11776107&#038;post=49&#038;subd=yoshioterada&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><BR><br />
<A HREF="http://java.sun.com/javaee/6/docs/tutorial/doc/index.html"><IMG SRC="http://farm3.static.flickr.com/2459/3594252620_413062a562.jpg"></A><BR><br />
<BR><br />
Java EE 6 のチュートリアルが下記の URL で公開されています。<BR><br />
<BR><br />
<A HREF="http://java.sun.com/javaee/6/docs/tutorial/doc/index.html"></p>
<p>http://java.sun.com/javaee/6/docs/tutorial/doc/index.html</A><BR></p>
<p><BR><br />
JAX-RS 等まだ記載されていない箇所もありますが、<BR><br />
Java EE 6 を試したい方は是非ご利用ください。<BR><br />
<BR></p>
<br />カテゴリー:Application Server/GlassFish Tagged: Java EE <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/yoshioterada.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/yoshioterada.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/yoshioterada.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/yoshioterada.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/yoshioterada.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/yoshioterada.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/yoshioterada.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/yoshioterada.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/yoshioterada.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/yoshioterada.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/yoshioterada.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/yoshioterada.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/yoshioterada.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/yoshioterada.wordpress.com/49/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yoshio3.com&#038;blog=11776107&#038;post=49&#038;subd=yoshioterada&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://yoshio3.com/2009/06/03/java-ee-6-%e3%83%81%e3%83%a5%e3%83%bc%e3%83%88%e3%83%aa%e3%82%a2%e3%83%ab/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f5b5cf8e8e2343a2915d94e1ca6f26e2?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">yosshi</media:title>
		</media:content>
	</item>
		<item>
		<title>Java EE 6のパブリックレビューが承認</title>
		<link>http://yoshio3.com/2009/02/25/java-ee-6%e3%81%ae%e3%83%91%e3%83%96%e3%83%aa%e3%83%83%e3%82%af%e3%83%ac%e3%83%93%e3%83%a5%e3%83%bc%e3%81%8c%e6%89%bf%e8%aa%8d/</link>
		<comments>http://yoshio3.com/2009/02/25/java-ee-6%e3%81%ae%e3%83%91%e3%83%96%e3%83%aa%e3%83%83%e3%82%af%e3%83%ac%e3%83%93%e3%83%a5%e3%83%bc%e3%81%8c%e6%89%bf%e8%aa%8d/#comments</comments>
		<pubDate>Wed, 25 Feb 2009 20:46:07 +0000</pubDate>
		<dc:creator>Yoshio Terada</dc:creator>
				<category><![CDATA[Application Server/GlassFish]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Java EE]]></category>

		<guid isPermaLink="false">http://yoshioterada.wordpress.com/2009/02/25/java-ee-6%e3%81%ae%e3%83%91%e3%83%96%e3%83%aa%e3%83%83%e3%82%af%e3%83%ac%e3%83%93%e3%83%a5%e3%83%bc%e3%81%8c%e6%89%bf%e8%aa%8d/</guid>
		<description><![CDATA[Java EE 6の承認がおりたみたいですね。 JavaOne 2009まで残り4ヶ月ですが、 JavaOne [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yoshio3.com&#038;blog=11776107&#038;post=79&#038;subd=yoshioterada&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><BR><br />
Java EE 6の承認がおりたみたいですね。<BR><br />
<BR><br />
JavaOne 2009まで残り4ヶ月ですが、<BR><br />
JavaOne 2009の目玉になりそうですね。<BR><br />
<BR><br />
<A HREF="http://jcp.org/en/jsr/results?id=4821"><br />
JSR #316 JavaTM Platform, Enterprise Edition 6 (Java EE 6) Specification<BR><br />
Public Review Ballot</A><BR><br />
<BR><br />
PS.<BR><br />
時期的に、残り４ヶ月で GlassFish v3(Java EE 6のRI) が<BR><br />
完成するかどうかは微妙ですが、是非開発者の皆様<BR><br />
頑張ってほしいです。<BR><br />
<BR></p>
<br />カテゴリー:Application Server/GlassFish Tagged: Java, Java EE <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/yoshioterada.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/yoshioterada.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/yoshioterada.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/yoshioterada.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/yoshioterada.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/yoshioterada.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/yoshioterada.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/yoshioterada.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/yoshioterada.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/yoshioterada.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/yoshioterada.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/yoshioterada.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/yoshioterada.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/yoshioterada.wordpress.com/79/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=yoshio3.com&#038;blog=11776107&#038;post=79&#038;subd=yoshioterada&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://yoshio3.com/2009/02/25/java-ee-6%e3%81%ae%e3%83%91%e3%83%96%e3%83%aa%e3%83%83%e3%82%af%e3%83%ac%e3%83%93%e3%83%a5%e3%83%bc%e3%81%8c%e6%89%bf%e8%aa%8d/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f5b5cf8e8e2343a2915d94e1ca6f26e2?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">yosshi</media:title>
		</media:content>
	</item>
	</channel>
</rss>
