4.3.6. Seam 2.2 Booking アーカイブのデプロイメントエラーや例外のデバッグおよび解決

前述の手順、「JBoss Enterprise Application Platform 5.1 バージョンの Seam 2.2 Booking アプリケーションのビルドおよびデプロイ」 では Enterprise Application Platform 5.1 の Seam 2.2 Booking アプリケーション構築し、JBoss Enterprise Application Platform 6 のデプロイメントフォルダーにデプロイしました。この手順では発生したデプロイメントエラーをデバッグし解決します。

重要

この例は、最初にアプリケーションを JBoss Enterprise Application Platform 6 上で実行できるようにすることを目的としています。この設定はサポート対象ではなく、Hibernate 4 を使用するよう次の手順でアプリケーションをアップグレードする必要があります。

手順4.16 デプロイメントエラーや例外のデバッグおよび解決

  1. 問題 - java.lang.ClassNotFoundException: javax.faces.FacesException
    アプリケーションをデプロイすると、ログに次のエラーが記録されます。
    ERROR \[org.jboss.msc.service.fail\] (MSC service thread 1-1) MSC00001: Failed to start service jboss.deployment.subunit."jboss-seam-booking.ear"."jboss-seam-booking.war".POST_MODULE:
    org.jboss.msc.service.StartException in service jboss.deployment.subunit."jboss-seam-booking.ear"."jboss-seam-booking.war".POST_MODULE:
    Failed to process phase POST_MODULE of subdeployment "jboss-seam-booking.war" of deployment "jboss-seam-booking.ear"
        (.. additional logs removed ...)
    Caused by: java.lang.ClassNotFoundException: javax.faces.FacesException from \[Module "deployment.jboss-seam-booking.ear:main" from Service Module Loader\]
        at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:191)
    
    ログの解説

    ClassNotFoundException は見つからない依存関係があることを示しています。この例では、クラス javax.faces.FacesException が見つからないため、依存関係を明示的に追加する必要があります。

    解決方法

    見つからないクラスと一致するパスを探し、EAP6_HOME/modules ディレクトリ内でそのクラスのモジュール名を見つけます。この例では、一致するモジュールが 2 つあります。

    javax/faces/api/main
    javax/faces/api/1.2
    
    両モジュールのモジュール名は同じ javax.faces.api ですが、メインディレクトリにあるモジュールは JSF 2.0 向けで、1.2 ディレクトリにあるものは JSF 1.2 向けです。一致するモジュールが 1 つのみの場合、 MANIFEST.MF ファイルを作成し、モジュールの依存関係を追加します。この例では、メインディレクトリにある 2.0 バージョンではなく JSF 1.2 バージョンを使用したいため、使用したい方を指定し、使用したくない方を除外します。それには、EAR の META-INF/ ディレクトリに次のデータが含まれる jboss-deployment-structure.xml ファイルを作成します。
    <jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.0">
      <deployment>
          <dependencies>
            <module name="javax.faces.api" slot="1.2" export="true"/>
          </dependencies>
      </deployment>
      <sub-deployment name="jboss-seam-booking.war">
        <exclusions>
            <module name="javax.faces.api" slot="main"/>
          </exclusions>
          <dependencies>
            <module name="javax.faces.api" slot="1.2"/>
          </dependencies>
      </sub-deployment>
    </jboss-deployment-structure>
    
    deployment セクションに JSF 1.2 モジュールの javax.faces.api に対する依存関係を追加します。また、JSF 1.2 モジュールに対する依存関係を WAR のサブデプロイメントセクションに追加し、 JSF 2.0 のモジュールを除外します。

    standalone/deployments/jboss-seam-booking.ear.failed ファイルを削除して同じディレクトリに空の jboss-seam-booking.ear.dodeploy ファイルを作成し、アプリケーションを再デプロイします。
  2. 問題 - java.lang.ClassNotFoundException: org.apache.commons.logging.Log
    アプリケーションをデプロイすると、次のエラーがログに記録されます。
    ERROR [org.jboss.msc.service.fail] (MSC service thread 1-8) MSC00001: Failed to start service jboss.deployment.unit."jboss-seam-booking.ear".INSTALL:
    org.jboss.msc.service.StartException in service jboss.deployment.unit."jboss-seam-booking.ear".INSTALL:
    Failed to process phase INSTALL of deployment "jboss-seam-booking.ear"
        (.. additional logs removed ...)
    Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.Log from [Module "deployment.jboss-seam-booking.ear.jboss-seam-booking.war:main" from Service Module Loader]
    
    ログの解説

    ClassNotFoundException は見つからない依存関係があることを示しています。この例では、クラスorg.apache.commons.logging.Log が見つからないため、依存関係を明示的に追加する必要があります。

    解決方法

    見つからないクラスと一致するパスを探し、EAP6_HOME/modules/ ディレクトリ内でそのクラスのモジュール名を見つけます。この例では、パス org/apache/commons/logging/ と一致するモジュールが 1 つあります。モジュール名は「org.apache.commons.logging」です。

    jboss-deployment-structure.xml ファイルを変更し、モジュールの依存関係をファイルのデプロイメントセクションに追加します。
    <module name="org.apache.commons.logging" export="true"/>
    
    jboss-deployment-structure.xml は次のようになるはずです。
    <jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.0">
      <deployment>
          <dependencies>
            <module name="javax.faces.api" slot="1.2" export="true"/>
            <module name="org.apache.commons.logging" export="true"/>
          </dependencies>
      </deployment>
      <sub-deployment name="jboss-seam-booking.war">
        <exclusions>
            <module name="javax.faces.api" slot="main"/>
          </exclusions>
          <dependencies>
            <module name="javax.faces.api" slot="1.2"/>
          </dependencies>
      </sub-deployment>
    </jboss-deployment-structure>
    
    standalone/deployments/jboss-seam-booking.ear.failed ファイルを削除して同じディレクトリに空の jboss-seam-booking.ear.dodeploy ファイルを作成し、アプリケーションを再デプロイします。
  3. 問題 - java.lang.ClassNotFoundException: org.dom4j.DocumentException
    アプリケーションをデプロイすると、次のエラーがログに記録されます。
    ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/seam-booking]] (MSC service thread 1-3) Exception sending context initialized event to listener instance of class org.jboss.seam.servlet.SeamListener: java.lang.NoClassDefFoundError: org/dom4j/DocumentException
        (... additional logs removed ...)
    Caused by: java.lang.ClassNotFoundException: org.dom4j.DocumentException from [Module "deployment.jboss-seam-booking.ear.jboss-seam.jar:main" from Service Module Loader]
    
    ログの解説

    ClassNotFoundException は見つからない依存関係があることを示しています。この例では、クラス org.dom4j.DocumentException が見つかりません。

    解決方法

    org/dom4j/DocumentException を探し、EAP6_HOME/modules/ ディレクトリ内でモジュール名を見つけます。モジュール名は 「org.dom4j」です。jboss-deployment-structure.xml ファイルを変更し、ファイルのデプロイメントセクションにモジュールの依存関係を追加します。

    <module name="org.dom4j" export="true"/>
    
    jboss-deployment-structure.xml ファイルは次のようになるはずです。
    <jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.0">
      <deployment>
          <dependencies>
            <module name="javax.faces.api" slot="1.2" export="true"/>
            <module name="org.apache.commons.logging" export="true"/>
                <module name="org.dom4j" export="true"/>
              </dependencies>
      </deployment>
      <sub-deployment name="jboss-seam-booking.war">
        <exclusions>
            <module name="javax.faces.api" slot="main"/>
          </exclusions>
          <dependencies>
            <module name="javax.faces.api" slot="1.2"/>
          </dependencies>
      </sub-deployment>
    </jboss-deployment-structure>
    

    standalone/deployments/jboss-seam-booking.ear.failed ファイルを削除して同じディレクトリに空の jboss-seam-booking.ear.dodeploy ファイルを作成し、アプリケーションを再デプロイします。
  4. 問題 - java.lang.ClassNotFoundException: org.hibernate.validator.InvalidValue
    アプリケーションをデプロイするとログに次のエラーが記録されます。
    ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/seam-booking]] (MSC service thread 1-6) Exception sending context initialized event to listener instance of class org.jboss.seam.servlet.SeamListener: java.lang.RuntimeException: Could not create Component: org.jboss.seam.international.statusMessages
        (... additional logs removed ...)
    Caused by: java.lang.ClassNotFoundException: org.hibernate.validator.InvalidValue from [Module "deployment.jboss-seam-booking.ear.jboss-seam.jar:main" from Service Module Loader]
    
    ログの解説

    ClassNotFoundException は見つからない依存関係があることを示しています。この例では、クラス org.hibernate.validator.InvalidValue が見つかりません。

    解決方法

    モジュール「org.hibernate.validator」は存在しますが JAR に org.hibernate.validator.InvalidValue クラスが含まれていないため、モジュールの依存関係を追加してもこの問題は解決しません。この例では、クラスが含まれる JAR は JBoss Enterprise Application Platform 5.1 デプロイメントの一部になります。 EAP5_HOME/jboss-eap-5.1/seam/lib/ ディレクトリに見つからないクラスが含まれている JAR を探します。これを実行するには、コンソールを開いて以下を入力します。

    $ cd EAP5_HOME/jboss-eap-5.1/seam/lib
    $ grep 'org.hibernate.validator.InvalidValue' `find . -name '*.jar'
    
    結果は次のようになります。
    $ Binary file ./hibernate-validator.jar matches
    $ Binary file ./test/hibernate-all.jar matches
    
    この場合、hibernate-validator.jarjboss-seam-booking.ear/lib/ ディレクトリにコピーします。
    $ cp EAP5_HOME/jboss-eap-5.1/seam/lib/hibernate-validator.jar jboss-seam-booking.ear/lib
    

    standalone/deployments/jboss-seam-booking.ear.failed ファイルを削除して同じディレクトリに空の jboss-seam-booking.ear.dodeploy ファイルを作成し、アプリケーションを再デプロイします。
  5. 問題 - java.lang.InstantiationException: org.jboss.seam.jsf.SeamApplicationFactory
    アプリケーションをデプロイすると、次のエラーがログに記録されます。
    INFO  [javax.enterprise.resource.webcontainer.jsf.config] (MSC service thread 1-7) Unsanitized stacktrace from failed start...: com.sun.faces.config.ConfigurationException: Factory 'javax.faces.application.ApplicationFactory' was not configured properly.
      at com.sun.faces.config.processor.FactoryConfigProcessor.verifyFactoriesExist(FactoryConfigProcessor.java:296) [jsf-impl-2.0.4-b09-jbossorg-4.jar:2.0.4-b09-jbossorg-4]
      (... additional logs removed ...)
    Caused by: javax.faces.FacesException: org.jboss.seam.jsf.SeamApplicationFactory
      at javax.faces.FactoryFinder.getImplGivenPreviousImpl(FactoryFinder.java:606) [jsf-api-1.2_13.jar:1.2_13-b01-FCS]
      (... additional logs removed ...)
      at com.sun.faces.config.processor.FactoryConfigProcessor.verifyFactoriesExist(FactoryConfigProcessor.java:294) [jsf-impl-2.0.4-b09-jbossorg-4.jar:2.0.4-b09-jbossorg-4]
      ... 11 more
    Caused by: java.lang.InstantiationException: org.jboss.seam.jsf.SeamApplicationFactory
      at java.lang.Class.newInstance0(Class.java:340) [:1.6.0_25]
      at java.lang.Class.newInstance(Class.java:308) [:1.6.0_25]
      at javax.faces.FactoryFinder.getImplGivenPreviousImpl(FactoryFinder.java:604) [jsf-api-1.2_13.jar:1.2_13-b01-FCS]
      ... 16 more
    
    ログの解説

    com.sun.faces.config.ConfigurationExceptionjava.lang.InstantiationException は依存関係の問題があることを示しています。この例では、原因は明らかではありません。

    解決方法

    com.sun.faces クラスが含まれるモジュールを探す必要があります。com.sun.faces モジュールは存在しませんが、com.sun.jsf-impl モジュールが 2 つあります。1.2 ディレクトリの jsf-impl-1.2_13.jar を簡単にチェックすると、com.sun.faces クラスが含まれていることが分かります。javax.faces.FacesExceptionClassNotFoundException の例と同様、メインディレクトリの JSF 2.0 バージョンではなく JFS 1.2 バージョンを使用したいため、使用したい方を指定し、使用したくない方を除外します。jboss-deployment-structure.xml を変更し、ファイルのデプロイメントセクションにモジュールの依存関係を追加する必要があります。また、WAR のサブデプロイメントに追加し、JSF 2.0 モジュールを除外する必要もあります。ファイルは次のようになるはずです。

    <jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.0">
      <deployment>
          <dependencies>
            <module name="javax.faces.api" slot="1.2" export="true"/>
                  <module name="com.sun.jsf-impl" slot="1.2" export="true"/>
            <module name="org.apache.commons.logging" export="true"/>
            <module name="org.dom4j" export="true"/>
          </dependencies>
      </deployment>
      <sub-deployment name="jboss-seam-booking.war">
        <exclusions>
            <module name="javax.faces.api" slot="main"/>
            <module name="com.sun.jsf-impl" slot="main"/>
          </exclusions>
          <dependencies>
            <module name="javax.faces.api" slot="1.2"/>
                  <module name="com.sun.jsf-impl" slot="1.2"/>
          </dependencies>
      </sub-deployment>
    </jboss-deployment-structure>

    standalone/deployments/jboss-seam-booking.ear.failed ファイルを削除して同じディレクトリに空の jboss-seam-booking.ear.dodeploy ファイルを作成し、アプリケーションを再デプロイします。
  6. 問題 - java.lang.ClassNotFoundException: org.apache.commons.collections.ArrayStack
    アプリケーションをデプロイすると、次のエラーがログに記録されます。
    ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/seam-booking]] (MSC service thread 1-1) Exception sending context initialized event to listener instance of class com.sun.faces.config.ConfigureListener: java.lang.RuntimeException: com.sun.faces.config.ConfigurationException: CONFIGURATION FAILED! org.apache.commons.collections.ArrayStack from [Module "deployment.jboss-seam-booking.ear:main" from Service Module Loader]
        (... additional logs removed ...)
    Caused by: java.lang.ClassNotFoundException: org.apache.commons.collections.ArrayStack from [Module "deployment.jboss-seam-booking.ear:main" from Service Module Loader]
    
    ログの解説

    ClassNotFoundException は見つからない依存関係があることを示しています。この例では、クラス org.apache.commons.collections.ArrayStack が見つかりません。

    解決方法

    org/apache/commons/collections のパスを探し、EAP6_HOME/modules/ ディレクトリ内でモジュール名を見つけます。モジュール名は 「org.apache.commons.collections」です。jboss-deployment-structure.xml を変更し、ファイルのデプロイメントセクションにモジュールの依存関係を追加します。

    <module name="org.apache.commons.collections" export="true"/>
    jboss-deployment-structure.xml ファイルは次のようになるはずです。
    <jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.0">
      <deployment>
          <dependencies>
            <module name="javax.faces.api" slot="1.2" export="true"/>
                  <module name="com.sun.jsf-impl" slot="1.2" export="true"/>
            <module name="org.apache.commons.logging" export="true"/>
            <module name="org.dom4j" export="true"/>
            <module name="org.apache.commons.collections" export="true"/>
        </dependencies>
      </deployment>
      <sub-deployment name="jboss-seam-booking.war">
        <exclusions>
            <module name="javax.faces.api" slot="main"/>
            <module name="com.sun.jsf-impl" slot="main"/>
          </exclusions>
          <dependencies>
            <module name="javax.faces.api" slot="1.2"/>
                  <module name="com.sun.jsf-impl" slot="1.2"/>
          </dependencies>
      </sub-deployment>
    </jboss-deployment-structure>

    standalone/deployments/jboss-seam-booking.ear.failed ファイルを削除して同じディレクトリに空の jboss-seam-booking.ear.dodeploy ファイルを作成し、アプリケーションを再デプロイします。
  7. 問題 - Services with missing/unavailable dependencies
    アプリケーションをデプロイすると、次のエラーがログに記録されます。
    ERROR [org.jboss.as.deployment] (DeploymentScanner-threads - 2) {"Composite operation failed and was rolled back. Steps that failed:" => {"Operation step-2" => {"Services with missing/unavailable dependencies" => ["jboss.deployment.subunit.\"jboss-seam-booking.ear\".\"jboss-seam-booking.jar\".component.AuthenticatorAction.START missing [ jboss.naming.context.java.comp.jboss-seam-booking.\"jboss-seam-booking.jar\".AuthenticatorAction.\"env/org.jboss.seam.example.booking.AuthenticatorAction/em\" ]","jboss.deployment.subunit.\"jboss-seam-booking.ear\".\"jboss-seam-booking.jar\".component.HotelSearchingAction.START missing [ jboss.naming.context.java.comp.jboss-seam-booking.\"jboss-seam-booking.jar\".HotelSearchingAction.\"env/org.jboss.seam.example.booking.HotelSearchingAction/em\" ]","
      (... additional logs removed ...)
    "jboss.deployment.subunit.\"jboss-seam-booking.ear\".\"jboss-seam-booking.jar\".component.BookingListAction.START missing [ jboss.naming.context.java.comp.jboss-seam-booking.\"jboss-seam-booking.jar\".BookingListAction.\"env/org.jboss.seam.example.booking.BookingListAction/em\" ]","jboss.persistenceunit.\"jboss-seam-booking.ear/jboss-seam-booking.jar#bookingDatabase\" missing [ jboss.naming.context.java.bookingDatasource ]"]}}}
    
    ログの解説

    「Services with missing/unavailable dependencies」(見つからない/使用できない依存関係を持つサービス) のエラーが発生したら、「missing」の後の括弧内にある文字を確認してください。この場合では次のようになります。

    missing [ jboss.naming.context.java.comp.jboss-seam-booking.\"jboss-seam-booking.jar\".AuthenticatorAction.\"env/org.jboss.seam.example.booking.AuthenticatorAction/em\" ]
    
    「/em」はエンティティーマネージャーとデータソースの問題であることを示しています。

    解決方法

    JBoss Enterprise Application Platform 6 ではデータソースの設定が変更になったため、standalone/configuration/standalone.xml ファイルに定義する必要があります。JBoss Enterprise Application Platform 6 には、既に standalone.xml ファイルに定義されているデータベースの例が含まれているため、 このアプリケーションでデータベースの例を使用するよう persistence.xml ファイルを変更します。standalone.xml ファイルを見るとデータベースの例の jndi-namejava:jboss/datasources/ExampleDS であることが分かります。jboss-seam-booking.jar/META-INF/persistence.xml ファイルを変更して既存の jta-data-source 要素をコメントアウトし、以下のように置き換えます。

    <!-- <jta-data-source>java:/bookingDatasource</jta-data-source> -->
    <jta-data-source>java:jboss/datasources/ExampleDS</jta-data-source>

    standalone/deployments/jboss-seam-booking.ear.failed ファイルを削除して同じディレクトリに空の jboss-seam-booking.ear.dodeploy ファイルを作成し、アプリケーションを再デプロイします。
  8. 問題 - java.lang.ClassNotFoundException: org.hibernate.cache.HashtableCacheProvider
    アプリケーションをデプロイすると、ログに次のエラーが記録されます。
    ERROR [org.jboss.msc.service.fail] (MSC service thread 1-4) MSC00001: Failed to start service jboss.persistenceunit."jboss-seam-booking.ear/jboss-seam-booking.jar#bookingDatabase": org.jboss.msc.service.StartException in service jboss.persistenceunit."jboss-seam-booking.ear/jboss-seam-booking.jar#bookingDatabase": Failed to start service
      at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1786)
      (... log messages removed ...)
    Caused by: java.lang.ClassNotFoundException: org.hibernate.cache.HashtableCacheProvider from [Module "org.hibernate:main" from local module loader @12a3793 (roots: /home/sgilda/tools/jboss7/modules)]
      at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:191)
      (... log messages removed ...)
    
    ログの解説

    ClassNotFoundException は見つからない依存関係があることを示しています。この例では、クラス org.hibernate.cache.HashtableCacheProvider が見つかりません。

    解決方法

    org.hibernate.cache のモジュールはありません。この例では、クラスが含まれる JAR は JBoss Enterprise Application Platform 5.1 デプロイメントの一部になります。EAP5_HOME/jboss-eap-5.1/seam/lib/ ディレクトリに見つからないクラスが含まれている JAR を探します。これを実行するには、コンソールを開いて以下を入力します。

    $ cd EAP5_HOME/jboss-eap-5.1/seam/lib
    $ grep 'org.hibernate.validator.InvalidValue' `find . -name '*.jar'`
    
    結果は次のようになります。
    Binary file ./hibernate-core.jar matches
    Binary file ./test/hibernate-all.jar matches
    
    この場合、hibernate-core.jarjboss-seam-booking.ear/lib/ ディレクトリにコピーします。
    cp EAP5_HOME/jboss-eap-5.1/seam/lib/hibernate-core.jar jboss-seam-booking.ear/lib
    

    standalone/deployments/jboss-seam-booking.ear.failed ファイルを削除して同じディレクトリに空の jboss-seam-booking.ear.dodeploy ファイルを作成し、アプリケーションを再デプロイします。
  9. 問題 - java.lang.ClassCastException: org.hibernate.cache.HashtableCacheProvider
    アプリケーションをデプロイすると、次のエラーがログに記録されます。
    ERROR [org.jboss.msc.service.fail] (MSC service thread 1-2) MSC00001: Failed to start service jboss.persistenceunit."jboss-seam-booking.ear/jboss-seam-booking.jar#bookingDatabase": org.jboss.msc.service.StartException in service jboss.persistenceunit."jboss-seam-booking.ear/jboss-seam-booking.jar#bookingDatabase": Failed to start service
      at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1786)
      (... log messages removed ...)
    Caused by: java.lang.ClassCastException: org.hibernate.cache.HashtableCacheProvider cannot be cast to org.hibernate.cache.spi.CacheProvider
      at org.hibernate.cache.internal.bridge.RegionFactoryCacheProviderBridge.init(RegionFactoryCacheProviderBridge.java:65)
      ... 20 more
    
    ログの解説

    ClassCastException は複数の問題が原因で発生する可能性があります。ログでこの例外を見てみると、クラス org.hibernate.cache.HashtableCacheProviderorg.hibernate.cache.spi.CacheProvider を拡張し、拡張するクラス以外のクラスローダーによってロードされたように見受けられます。org.hibernate.cache.HashtableCacheProvider クラスは hibernate-core.jar にあり、アプリケーションクラスローダーによってロードされます。このクラスを拡張するクラスである org.hibernate.cache.spi.CacheProviderorg/hibernate/main/hibernate-core-4.0.0.Beta1.jar にあり、モジュールによって暗黙的にロードされます。これはあからさまではありませんが Hibernate 4 の変更が原因で、この問題は HashtableCacheProvider クラスを他のパッケージへ移動したことによる後方互換性の問題が原因となっています。このクラスは org.hibernate.cache パッケージから org.hibernate.cache.internal パッケージに移動されました。persistence.xml ファイルより hibernate.cache.provider_class プロパティーを削除しないと、Seam アプリケーションが以前の Hibernate ライブラリをバンドルするよう強制されるため、ClassCastExceptions が発生します。JBoss Enterprise Application Platform 6 では HashtableCacheProvider を使用せずに Infinispan を使用するようにしてください。

    解決方法

    JBoss Enterprise Application Platform 6 では、jboss-seam-booking.jar/META-INF/persistence.xml ファイルの hibernate.cache.provider_class property を次のようにコメントアウトします。

    <!-- <property name="hibernate.cache.provider_class" value="org.hibernate.cache.HashtableCacheProvider"/> -->

    standalone/deployments/jboss-seam-booking.ear.failed ファイルを削除して同じディレクトリに空の jboss-seam-booking.ear.dodeploy ファイルを作成し、アプリケーションを再デプロイします。
  10. この時点で、アプリケーションはエラーを引き起こさずにデプロイされますが、ブラウザーで URL http://localhost:8080/seam-booking/ へアクセスし、アカウントへログインしようとするとランタイムエラー 「The page isn't redirecting properly」(ページが正しくリダイレクトしません) が発生します。次の手順でランタイムエラーのデバッグおよび解決方法について学びましょう。
    ランタイムの問題をデバッグおよび解決する方法については 「Seam 2.2 Booking アーカイブのランタイムエラーや例外のデバッグおよび解決」 を参照してください。前のトピックに戻るには 「Seam 2.2 Booking アーカイブの JBoss Enterprise Application 6 への移行: 手順説明」 をクリックしてください。