JBoss Enterprise Application Platform

リリースノート 4.2.0

概要

これは JBoss Enterprise Application Platform 4.2 リリース用のリリースノートです。 最新情報及び重要な事項が含まれています。


1. JBoss Enterprise Application Platform について
2. 製品サポートとライセンスのウェブサイトリンク
3. 収録されているドキュメント
4. デフォルトのセキュリティ設定
5. Seam サンプルアプリケーションを実行する
6. テクノロジープレビューとしての組込み Hypersonic データベース
7. このリリースに関する既知の問題

1. JBoss Enterprise Application Platform について

純粋な Java プラットフォーム上で多機能で高性能な Web 2.0 アプリケーションの開発を行うためのパワフルなツールを求めている方に最適です。

JBoss Enterprise Application Platform 4.2 は、 オープンソースのエンタープライズソフトウェアにおける次世代のソリューションです。

既存の J2EE 1.4 エンタープライズ Java アプリケーションに対して完全な互換性を実現しています。

同時に、 Java EE 5.0 の仕様で定義されている主要な機能およびコンポーネントのほぼすべてがサポートされていますので、 新しいエンタープライズ Java アプリケーションでは非常にシンプルな Java EE 5.0 の POJO ベースプログラミングモデルを利用することができるようになります。

更に、 JBoss Seam、Hibernate、 Tomcat、 JBoss Cache などの傑出したオープンソースフレームワークを統合することにより、 JBoss Enterprise Application Platform はオープンソースコミュニティによる革新技術をも利用することができます。

また、 JBoss Enterprise Application Platform 4.2 は、 Red Hat によって全面的にテストされた上でサポートされているため、 多くの主要なエンタープライズ向けハードウェアやソフトウェア製品での稼働が保証されています。

このような利点により、 JBoss Platform の今後のバージョンに対する前方互換を維持しながら Java EE 5.0 のテクノロジーを利用して新しいアプリケーションの開発を行うことができるようになります。

2. 製品サポートとライセンスのウェブサイトリンク

サポートのプロセス

http://www.redhat.com/support/process/

プロダクションサポートの範囲

http://www.redhat.com/support/policy/soc/production

プロダクションサポートサービスレベル規程

http://www.redhat.com/support/policy/sla/production/

開発者サポートの範囲

http://www.redhat.com/support/policy/soc/developer/

開発者サポートサービスレベル規程

http://www.redhat.com/support/policy/sla/developer/

製品アップデートと製品別のサポートポリシー

http://www.redhat.com/security/updates/jboss_notes/

JBoss エンドユーザーライセンス規程

http://www.redhat.com/licenses/jboss_eula.html

3. 収録されているドキュメント

zip ディストリビューションでは、 Platform 用のドキュメントとその個別コンポーネントが個別の zip ファイル jboss-eap-docs-4.2.0-1.ep1.1.zip で配布されます。

Linux システムの場合、 ドキュメントは jboss-seam-docs-1.2.0-1.AP.ep1.11.noarch.rpmrh-eap-docs-4.2.0-1.ep1.5.noarch.rpm の 2 つの RPM に収納され、 手動でインストールする必要があります。 Red Hat Enterprise Linux に RPM パッケージをインストールする方法については、 http://kbase.redhat.com/faq/FAQ_35_198.shtm にある Red Hat ナレッジベースの記載を参照ください。

エラータ、 追加情報、 アプリケーションコードなどが追加されたドキュメントの更新バージョンは、 http://www.redhat.com/docs/manuals/jboss でご覧ください。

収録されているドキュメントの一覧はドキュメントディレクトリ配下にある index.html ファイルをご覧ください。 また、 JBOSS_DIST/jboss-as/readme.html にある JBoss AS 4.2 用のリリースノートも併せて参照してください。

4. デフォルトのセキュリティ設定

RPM または zip ディストリビューションを使用している場合、 デフォルトで認証が有効になっていますが、 ユーザーアカウントは設定されていないので注意してください。 これは、 JBoss AS の各種サービスに対して無許可のアクセスが行われないよう防止することを目的としています。 サービスを再度アクセス可能にする方法については、 インストールガイド、 または http://kbase.redhat.com/faq/FAQ_107_9963.shtm をご覧ください。

5. Seam サンプルアプリケーションを実行する

本番用設定(production)を使用してドキュメントに格納されている Seam サンプルアプリケーションを実行されることをお勧めします。 別の設定を使用すると、 SEAM サンプルアプリケーションのデプロイで java.lang.OutOfMemoryError: PermGen space が発生する に記載されているようにメモリーに関する問題が発生する可能性があります。 他の設定が指定されていない場合、 サーバーが起動するデフォルトの設定は本番用設定(production)になります。

6. テクノロジープレビューとしての組込み Hypersonic データベース

組込み Hypersonic データベースは、 テクノロジープレビューとして含まれているため実稼働環境での使用はサポートされませんので注意してください。 このコンポーネントに対する技術サポートはありません。 このコンポーネントに関するバグ報告は歓迎していますが、 特定の期間枠内における修正を確約するものではありません。

7. このリリースに関する既知の問題

本リリースの時点で既知の問題となる一覧を以下に示します。 これらの問題の詳細については JIRA でご覧になれます。

jdk1.4 でビルドされた JBoss ポータル 2.4.1.SP1 を jdk1.5 で動作するプラットフォームエディションにデプロイすると失敗する
問題点

なんらかの MBean のデプロイ時にエラーとなり失敗します。

その他の情報

server.log に以下のようなエラーが出現します。

ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/portal-core]]
Error configuring application listener of class
org.apache.myfaces.webapp.StartupServletContextListener 
java.lang.ClassNotFoundException: org.apache.myfaces.webapp.StartupServletContextListener

状態

現在、 バグ修正の統合待ちです。

回避策

現時点ではありません。 ポータル 2.6 は 4.2 へデプロイすることができますが、 すべての機能が動作するわけではありません。

詳細情報

JBPAPP-59

NetBeans 5.5 は JBoss AS 4.2.0.GA を検出しない
問題点

JBoss AS 4.2.0.GA は 検出されないため、 NetBeans 5.5 サーバーリストに追加できません。

状態

これは、 NetBeans の新しいバージョンで修正されています。 JBoss 4.2.0 は NetBeans 5.5.1 RC1 及びそれ以降のバージョンでは正しく検出されます。

回避策

NetBeans 5.5.1 RC 1 またはそれ以降を使用できない場合は、 resolver.jar という名前で空のファイルを $JBOSS_HOME/lib/endorsed に追加します。 これにより NetBeans 5.5 がサーバーを検出できるようになります。

詳細情報

JBPAPP-84

SEAM サンプルアプリケーションのデプロイで java.lang.OutOfMemoryError: PermGen space が発生する
問題点

SEAM Application Platform ディストリビューションに同梱されている SEAM のサンプルアプリケーションは 2 つあります。 また、 seam/examples には数種類のサンプルアプリケーションが提供されています。 これらの全てのサンプルアプリケーションをデプロイしようとすると、 サーバーの PermGen スペースを消費してしまう原因となります。 サーバーは使用できない状態となるため、 明示的に "kill" コマンドで終了する必要があります。

回避策

production 設定でサーバーを起動すると、 この問題を解決することできます。

詳細情報

JBPAPP-66

Linux 環境で JBoss AS がサービスとして実行している場合、 HSQL データベースマネージャが起動しない
問題点

Linux で JBoss AS がサービスとして起動された場合、 HSQL データベースマネージャの起動は失敗します。 次のようなエラーが server.log で見られます。

2007-05-17 12:15:29,113 ERROR [org.jboss.jdbc.HypersonicDatabase] Failed to star
t database manager
java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.jboss.jdbc.HypersonicDatabase$1.run(HypersonicDatabase.java:517)
Caused by: java.awt.HeadlessException:
No X11 DISPLAY variable was set, but this program performed an operation which r
equires it.
        at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:1
59)
        at java.awt.Window.<init>
>(Window.java:317)
        at java.awt.Frame.<init>(Frame.java:419)
        at javax.swing.JFrame.<init>(JFrame.java:194)
        at org.hsqldb.util.DatabaseManagerSwing.main(Unknown Source) 

回避策

run.sh を使って JBoss AS を起動すると、 HSQL データベースマネージャが起動します。

詳細情報

JBPAPP-180

最小限設定 (minimal) で起動した場合、 サーバーをシャットダウンするためのデスクトップショートカットが機能しない
問題点

JBoss AS が最小限設定 (minimal) で起動されている場合、 サーバーをシャットダウンするためのデスクトップショートカットを使用すると冗長なエラーメッセージを出力します。

原因

サーバーは想定のとおりに動作しています。 サーバーシャットダウンのデスクトップショートカットとシャットダウンスクリプトは両方共、 jmx-invoker-service.xml サービスに依存しています。 最小限設定 (minimal) ではこのサービスが有効にされないため、 いずれの方法を使用してもサーバーのシャットダウンを行うことができません。 この場合には、 コマンドラインから手動でサーバーを起動、 また Ctrl キーと C キーの組み合わせで停止することができます。

詳細情報

JBPAPP-163.

windows エージェントで管理されている場合、 Tomcat に関する説明が表示されない
問題点

Windows上でJON agentが、Linux上でJONサーバーが動作している場合、 Tomcat に関する説明は表示されません。

回避策

以下の手順により、 Tomcat をモニタリングすることができます。

JBoss 組込みの Tomcat 6.0 をモニタリングする

注記: JON 内部の Tomcat をモニタリングする場合、 これらの手順は必要ありません。

Tomcat サーバーとサービスのモニタリングを有効にするには、 メトリック収集のためのフィルタ及び JON にそのメトリックデータを配信するためのウェブアプリケーションを使って Tomcat サーバーを設定しなければなりません。 ウェブアプリケーション、 フィルタ、 追加 jar などはすべて product_connectors\servlet 配下の JON エージェントディレクトリ内にパッケージ化されています。 以下のコマンドはすべてこのディレクトリから発行しなければなりません。

Tomcat のモニタリングを可能にするには、 まずはじめにフィルタとウェブアプリケーションをインストールします。 これらを使って内部 Tomcat のメトリックスを収集します。

copy libs\hq-filter.jar %JBOSS_HOME%\server\{default | all|\deploy\jboss-web.deployer

次に、 JBoss サーバーに jbnem-monitor ウェブアプリケーションを導入します。

xcopy /E jbnem-monitor %JBOSS_HOME%\server\{default | all}\deploy\jboss-web.deployer\..\jbnem-monitor.war\

最後に、 フィルタを有効にする必要があります。 以下を %JBOSS_HOME%\server\{default | all}\deploy\jboss-web.deployer\conf\web.xml に追加します。 各タグは同種のタグごとにグループ化しなければならないことを留意しておいてください。

<filter>
    <filter-name>JMXFilter</filter-name>

<filter-class>net.hyperic.hq.product.servlet.filter.JMXFilter</filter-class>

    <!-- Uncomment the following line to enable response time logging.
            The directory you specify as the param can include properties
            referenced from the System.properties of the vm.

            The ResponseTime log file will by default store the last 1 hour's
            worth of response time data. This file gets truncated as soon as
            data is succesfully sent into the server. The file is named uniquely
            for each webapp in the form: yourContextName_JBNEMResponseTime.log

            If this fragment is included in the global web.xml for the container,
            all webapps in it will generate response time data, and have logs
            following the format described above. You can enable it individually
            on each webapp as well if you dont want every webapp to generate
            response time data

         -->
    <!--
    <init-param>
      <param-name>responseTimeLogDir</param-name>

      <param-value>%JBOSS_HOME%\jboss-as\server\{default | all}\log</param-value>
    </init-param>
         -->

    <!-- these are optional parameters which you can override to optimize logging -->
    <!--
    <init-param>

      <param-name>bufferSize</param-name>
      <param-value>8k</param-value>
    </init-param>

    <init-param>

      <param-name>bufferTime</param-name>
      <param-value>1h</param-value>
    </init-param>
         -->
  </filter>

  <filter-mapping>
    <filter-name>JMXFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

  <listener>

<listener-class>net.hyperic.hq.product.servlet.filter.JMXSessionListener</listener-class>
    </listener>

  <servlet>
    <servlet-name>JMXWebappMetricServlet</servlet-name>

<servlet-class>net.hyperic.hq.product.servlet.filter.JMXFilterInitServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
詳細情報

JBPAPP-210

@EJB インジェクションが JSF バッキングビーンで機能しない
問題点

EJB3 ビーンまたはビーンインターフェースのインジェクションを必要とする JSF バッキングビーンのメソッドが呼び出されると、 例外が発生します: ERROR [JBossInjectionProvider] Injection failed on managed bean.

原因

JBoss AS 4.2 は Java 1.4 EE アプリケーションと完全互換であり、 EJB3 プラグインで拡張機能を提供しています。 現在、 インジェクションとアノテーションは EJB3 プラグイン内でのみ機能します。

回避策

これを回避するには、 2 つの方法があります。 1 つは明確な JNDI ルックアップを使用する方法です。 この例を見るには、 ドキュメントに含まれている ejb3jsf のサンプルアプリケーション内の TodoBean 用のコードを参照してください。 もうひとつの回避策は Seam フレームワークを利用して web 層内の EJB3 ビーンを取得する方法です。 ドキュメントに含まれている seam サンプルアプリケーションを参照してください。

詳細情報

回避策に関する詳細は、 ドキュメントに含まれている「Getting Started Guide」をご覧ください。

PostgreSQL 8.2 で LIKE 表現内にエスケープ構文を使うクエリを実行すると PSQLException: The column index is out of range となる
問題点

特定のエスケープ文字を LIKE 表現内で使用すると、 PostgreSQL 8.2 で 例外が発生する要因となります。

回避策

異なるデータベースベンダー間での移植性の観点から使用を避けたほうがよい「エスケープ文字」がいくつかあります。 例えば、 バックスラッシュ ('\') は PostgreSQL 内では特殊な意味を持つため(他のデータベースでも同様の場合があります)、 他のデータベースで使用できるかもしれませんがエスケープシーケンスとして使用できません。 代わりに、 「パイプ」 ('|') などのようなすべてのデータベースで適度に安全なエスケープ文字を選べばよいでしょう。

詳細情報

JBPAPP-219.

本リリースで EJB3 に関連する問題
問題点

プラットフォーム用の開発を行う場合、 本リリースには EJB3 実装に関して理解しておくべき問題点がいくつかあります。 以下にその問題の要約と詳細情報へのリンクを示します。

詳細情報

  • EJBTHREE-899 - デプロイメントディスクリプタからの WebServiceRef インジェクションが機能しない

  • EJBTHREE-900 - WebServiceContext のインジェクションが機能しない

  • EJBTHREE-896 - ejb-jar.xml 内のインタセプタの順番を指定しても新規のインタセプタインスタンスを作成する

  • EJBTHREE-985 - env-entry-value はオプション (16.4.1.3 最後の段落)

  • EJBTHREE-989 - URL 型のリソースをインジェクションできない

  • EJBTHREE-967 - ORB のインジェクションが機能しない (EJB3 16.13)

  • EJBTHREE-724 - persistence.xml jar ファイルの処理 (EJB3 6.2.1.6)

  • EJBTHREE-757 - getMessageContext が実装されていない