legacy-knowledge-base
公開されました Jul. 2, 2025

JBoss EAP 5.2でのLiferay Portalのセットアップについて

投稿者

Justin Choi

knowledge-article-header-disclaimer-how-to

knowledge-article-header-disclaimer

legacy-article

learn-legacy-article-disclaimer-text
この記事では、JBoss EAP 5.2上にLiferay Portalをデプロイする方法について説明します。

解決策

はじめの一歩

Liferay Homeは、デフォルトではJBoss EAP 5.2のインストール先から1つ上のフォルダにあります。

  1. JBoss EAP 5.2をダウンロードし、お好きなディレクトリにインストールしてください。 本節では、このディレクトリを $JBOSS_HOME と表記します。
  2. 最新版の Liferay Portal .war ファイルをダウンロードします。
  3. Liferay's Portal Dependenciesをダウンロードする。

依存関係の構成

  1. Liferay の依存関係を $JBOSS_HOME/jboss-as/server/default/lib に解凍します.
    • hsql.jar
    • portal-service.jar
    • portlet.jar
  2. さらに、以下のjarを同じフォルダーにコピーしてください:
    • activation.jar
    • jta.jar
    • mail.jar
    • mysql.jar
    • persistence.jar
    • postgresql.jar
    • script-10.jar
    • servlet-api.jar
  3. 次に、LiferayのJARと競合しないようにJBossのHibernate ValidatorとHSQLのJARを削除します。 $JBOSS_HOME/jboss-as/common/libから以下のファイルを削除します:
    • hibernate-validator.jar
    • hsqldb.jar
    • hsqldb-plugin.jar
  4. $JBOSS_HOME/jboss-as/server/default/conf/login-config.xml をテキストエディターで開きます。
  5. 41~64行目あたりのHsqlDBRealmとJmsXARealmという名前のブロックをコメントアウトしてください。
  6. $JBOSS_HOME/../server/default/deployにある Liferay と競合する可能性がある以下のファイルを削除してください:
    • /messaging
    • ejb2-container-jboss-beans.xml
    • ejb2-timer-service.xml
    • ejb3-connections-jboss-beans.xml
    • ejb3-container-jboss-beans.xml
    • ejb3-interceptors-aop.xml
    • ejb3-timerservice-jboss-beans.xml
    • hsqldb-ds.xml
    • jms-ra.rar
    • mail-ra.rar
    • mail-service.xml
    • profile-service-secured.jar
    • uuid-key-generator.sar
  7. $JBOSS_HOME/jboss-as/server/default/deployersで以下を削除する:
    • jboss-ejb3-endpoint-deployer.jar
    • messaging-definitions-jboss-beans.xml

Liferayのデプロイメント

  1. $JBOSS_HOME/jboss-as/server/default/deploy/ROOT.war に移動し、フォルダの内容をすべて削除します。
  2. Liferay WARファイルの中身をこのフォルダに展開します。
  3. $JBOSS_HOME/../server/default/ROOT.war/WEB-INF ディレクトリに jboss-classloading.xml というファイルを作成し、以下の内容を追加します:
        <classloading xmlns="urn:jboss:classloading:1.0"
               parent-first="false"
               domain="LiferayDomain"
               export-all="NON_EMPTY"
               import-all="true">
        </classloading>
       
    この設定ファイルは、親クラスが最初にロードされることを許さないドメインを定義します。 その代わり、Liferay Portalのクラスはエクスポートされます。 JBossには独自のHibernate JARが付属しているので、LiferayにこれらのJARを無視し、代わりに独自のJARを使用するように指示するためには、上記の設定が必要です。 設定時に省略した場合、Hibernateの例外が発生することがあります。 また、各LiferayプラグインのWEB-INFフォルダにjboss-classloading.xmlファイルを追加する必要があります; 以下のプラグインのデプロイセクションをご覧ください。
  4. portal-ext.properties ファイルを $LIFERAY_HOME ( $JBOSS_HOMEの一つ上の階層)に作成し、以下のプロパティを追加します:
        hibernate.validator.apply_to_ddl=false
    
        hibernate.validator.autoregister_listeners=false
    
        auto.deploy.jboss.dest.dir=${jboss.home.dir}/server/default/deploy
    
        auto.deploy.deploy.dir=C:/JBoss-/deploy
       
  5. $JBOSS_HOME/ROOT.war/WEB-INF/libから以下のファイルを削除してください:
    • jaxrpc.jar
    • stax.jar
    • xercesImpl.jar
    • xml-apis.jar

jboss-classloading.xml を各プラグインの WEB-INF フォルダーに追加し、次の内容を記述します:

<classloading xmlns="urn:jboss:classloading:1.0"
    			domain="PLUGINNAME-portlet"
    			parent-domain="LiferayDomain"
    			parent-first="false"
    			top-level-classloader="false"
    			export-all="NON_EMPTY"
    			import-all="false">
</classloading>
		

上記構成で参照するLiferayDomainは、上記「Liferayの導入」のステップ3で定義したドメインです。 Liferayドメインを使用するようにプラグインを設定すると、JBossとLiferayでJARファイルのバージョンが異なる場合、プラグインはLiferayのバージョンを使用することになります。 この設定をしないと、Liferayプラグインは間違ったバージョンのJARファイルを使用してしまうかもしれません。 この設定は、JBossが起動していない限り、プラグインWARのデプロイ前またはデプロイ後のいずれかに行ってください。 もちろん、この設定はデプロイ前にしておくのがベストです。 それ以外の場合、JARの競合がある場合は、サーバーをシャットダウンし、Liferayドメインを使用するようにプラグインを設定し、サーバーを再起動します。

JBoss EAP 5.2.を起動するために。 ユーザーは、以下の設定をrun.conf.batに入れなければなりません:

set "JAVA_OPTS=-Dorg.jboss.net.protocol.file.useURI=false -Dfile.encoding=UTF8 -Duser.timezone=GMT"

このプロパティは、Javaのメモリを処理します。設定されていない場合、PermGen Errorsが発生します。

did-this-article-resolve-your-issue

legacy-knowledge-base