Java™ EE 6 には、数多くの新機能や拡張機能が備えられています。このリリースでは、以下がサポートされます。
Web サービス
- Web サービスは、XML Web サービス・クライアント・アプリケーションの作成をサポートしています。
- ご使用の API を、簡単な注釈を用いた .NET 共通操作 Web サービスとして公開できます。
- Java SE 6 では Java オブジェクト・マッピング API に新しい構文解析と XML が追加されました。これらは、以前は Java EE プラットフォーム実装または Java Web
Services Pack でのみ使用可能でした。
JDBC 拡張機能
- Java SE 6 Development Kit には、すべての Java JDBC データベース、Apache Derby に基づく Java DB が含まれています。
- JDBC には更新された JDBC 4.0 API が含まれています。この API には、SQL データ・タイプとしての XML の特別なサポート、バイナリー・ラージ・オブジェクト (BLOB) と文字ラージ・オブジェクト (CLOB) との改善された統合などを含む、重要な数多くの改良点があります。
- Java 6 では、明示的に JDBC クラスをロードする必要がなくなりました。Class.forName("oracle.jdbc.driver.OracleDriver") という行は、Connection conn
= DriverManager.getConnection("jdbc:derby:TestDB"); という簡単な宣言に置き換えられました。
モニターと管理
- Java EE 6 では、Java モニターおよび管理のコンソール (JConsole) が改善されました。
- JConsole のグラフィック表示が改善されました。
同一の JConsole インスタンスで複数のアプリケーションをモニターできるようになり、要約画面のデザインが一新されました。
- Java 6 では、Java 6
仮想マシンで実行中のアプリケーションであれば、どのアプリケーションでもモニターできます。
- Java 6 には、高性能のスレッド管理機能とモニター機能も備えられています。
- OutOfMemoryError が単に放置されることはなくなります。フル・スタック・トレースが出力され、問題の原因となっている可能性のある事柄に関するヒントが得られます。
ファイル・システムの管理
- Java 6 では、ローカル・ファイル・システムをより詳細に制御できます。
- java.io.File クラスには、新しい 3 つのメソッドがあり、指定のディスク・パーティション上で使用可能なスペース量 (バイト単位) を判別できます。
- java.io.File クラスに備えられている一連の関数を使用すると、Unix の chmod コマンドを使用する場合と同様に、ローカル・ファイル・システム内のファイルに読み取り可能、書き込み可能、実行可能の各フラグを設定できます。
セキュリティー
- デジタル署名を作成および操作するための XML デジタル署名 (XML-DSIG) API が
サポートされます。さらに、プラットフォーム固有のセキュリティー・サービスにアクセスするための多様な新しい方法も追加されています。それには、以下が含まれています。
- セキュアな認証と通信のための、Microsoft Windows 上における固有の公開鍵基盤 (PKI) サービスと暗号化サービス
- 認証のための、Java Generic Security Services
(Java GSS) と Kerberos サービス
- ユーザーを認証するための LDAP サーバーへのアクセス。
Java EE
6 API の変更点
WebBeans 1.0: これは、Java EE 6 で開発された最も画期的な API の 1 つで、WebBeans は、Java EE の多数のギャップを埋めることができます。WebBeans
- JSF、JPA、EJB 3 の各プログラミング・モデルを 1 つの十分に統合されたプラットフォームに統一します。WebBeans は EJB 3 Bean、JPA エンティティー、
および JavaBeans を WebBeans コンポーネントとして登録し、これらのコンポーネントには EL を介してアクセス可能で、
相互に注入できます。
- プラットフォームに一連の堅固な依存関係注入機能を備えます。
- Java EE インターセプター・モデルの拡張を、インターセプターを注釈にバインドする機能を追加することで実現します。インターセプターをターゲット・オブジェクト・クラス自体にバインドする必要はありません。
EJB 3.1: EJB 3.1 では、重要なビジネス・コンポーネント・サービスを追加する一方で、可能な限り EJB が簡易性を保つための努力が払われています。EJB
3.1
- セッション Bean に関しても、ビジネス・インターフェースはオプションとなっています。
- Singleton Bean の概念が追加されました。それらは共有アプリケーションの状態を管理するためのものなので、デフォルトで、完全にスレッド・セーフです。同時に、EJB 3.1 では柔軟性を高めるために宣言型の並行性コントロールが追加されています。
- cron スタイルのスケジューリングに対するサポートが追加されました。
- @Asynchronous 注釈を使用して、セッション Bean メソッドを非同期的に呼び出す機能が追加されています。
- Web プロファイルに適合するより小さいサブセットの EJB API を追加するために EJB 3.1 Lite の概念が導入されています。
EJB Lite にはトランザクションとセキュリティーのような機能が含まれていますが、メッセージング、リモート操作、スケジューリングなどの機能は含まれていません。
- 標準 JNDI 名 java:global/app/module/beah#interface が導入されました。
JPA 2.0: Java EE
6 では、JPA が別の API として EJB から公式に分離されています。JPA 2.0
- @ElementCollection 注釈を使用して、コレクション、マップ、リストをモデル化する機能など ORM マッピングに関する多数の拡張機能、さらには単一方向の 1 対多の関係をマップする機能が追加されています。
- エンティティー・マネージャーと照会 API が拡張され、最初の結果の取り出し、照会結果の最大サイズの指定、基礎となるベンダー固有のエンティティー・マネージャー・オブジェクトと照会オブジェクトへのアクセス、ペシミスティック・ロック操作などがサポートされています。
- SQL のような CASE、NULLIF、COALESCE を使用して JPQL が拡張されました。
- 基準 API が追加されています。
Servlet 3.0: Servlet 3.0 には Java EE 5 モデルが取り込まれています。Servlet 3.0
- @WebServlet、@WebFilter および @WebListener などの注釈が導入されています。これにより web.xml 構成が削減され、すべて除去することも不可能でなくなりました。
- Web フラグメントという概念が導入されています。詳しくは、Web フラグメント・プロジェクトの作成を参照してください。
- ServletContext を介してサーブレット、フィルター、リスナーをプログラマチックに追加できる機能が追加されました。
- EJB 3.1 以降、デプロイメント記述子がオプションとなっています。
- Web 3.0 プロジェクトでの EJB 3.0 および 3.1 Bean のサポートを提供しています。
JAX-RS 1.1: JAX-RS 1.1 は JAX-WS の REST スタイルの対応物です。JAX-RS 1.1
- @Path 注釈を使用して、JAX-RS リソースがアクセス可能な URL を判別します。
- URL 照会パラメーター、URL の一部、Cookie、HTTP ヘッダー値のようなソースの入力をマップします。
- @Produces 注釈を使用して、戻り値のコンテンツ・タイプが text/xml や text/json などのうち、どのタイプかを JAX-RS に通知します。
- サーブレット、WebBeans、および EJB と統合します。