サーバー環境について

プロジェクトサーバー

JavaEE7 サーバー(WildFly)

J2EEサーバー(旧資料)

WebSocketサーバー(旧資料)

目次

  1. はじめに
  2. JavaEE7 サーバーとは
  3. JavaEE7 サーバーの構築
    1. WildFlyのインストール
  4. ドライバ系ライブラリの配置
    1. WildFlyへのドライバ系ライブラリの配置
  5. WildFlyの設定
    1. データベースの接続設定
    2. Queue・Topicの設定
    3. 接続ポートの設定
    4. メールサーバーの設定
    5. Webホームの設定
  6. WildFlyの起動設定
    1. Javaの設定
    2. メモリの設定
    3. Pexaの設定
    4. HTML5クライアント表示の設定
    5. サブレットの設定
    6. HTML5 TODO用プロパティ
    7. HTML5 Template汎用プロパティ
  7. ユーザの登録
  8. WildFlyの起動
  9. WildFlyのSSL設定(HTTPS)
    1. サーバーSSL証明書の作成
    2. standalone-full.xml の設定(HTTPS)
  10. WildFlyのSSL設定(EJB3)
    1. クライアント用自己SSL証明書の作成
    2. サーバー用・クライアント用自己署名付き証明書の作成
    3. standalone-full.xml の設定(EJB3)
    4. JNLP用のURLの設定
  11. WildFlyリモートプリント設定
    1. 本体側standalone-full.xml の設定
    2. jndi_list.xmlの設定
  12. 外部から接続するJMSの設定
  13. 開発環境の設定
    1. PEXAClientLauncharの指定
    2. Antの実行
    3. Antの実行(リモートプリントサーバー用)
  14. WildFlyの制限事項


はじめに

このドキュメントは、JavaEE7 サーバー(WildFly)の構築ガイドです。
構築例を以下で解説します。


JavaEE7 サーバーとは

JavaEE7 サーバーは、JavaEE7の規格に従って作成されたJavaEE7アプリケーションを動作させるためのアプリケーションサーバーです。
PEXAのアプリケーション実行エンジンの上に開発された業務システムアプリケーションはJavaEE7アプリケーションの形をとりますので、
これを実行するためにはJavaEE7サーバーが必要となります。

プロジェクトの各作業者のローカル開発環境にもこのJavaEE7サーバーはインストールして使用しますが、それとは別にシナリオテスト環境や本番環境などにもインストールします。
このガイドでは、後者のテスト環境や本番環境向けのJavaEE7サーバーインストール及び各種設定について説明します。
対象となるJavaEE7サーバーはJBOSSのWildFly9.0.2Final,WildFly10.0.0Final,WildFly10.1.0Finalとします。
また、本ページでは、standaloneでの起動を前提に説明しています。


JavaEE7 サーバーの構築

WildFlyのインストール

JBossのWildFlyはフリーソースのアプリケーションサーバーです。ソースコードが公開されており、LGPLで提供されています。
WildFlyは以下のサイトからダウンロードすることが出来ます。
https://wildfly.org/downloads/
ダウンロードしてきたアーカイブファイルを、任意のディレクトリに展開すればインストール自体は完了です。
特にインストーラーなどを使用する必要はありません。

以降の解説で、WildFlyをインストールしたディレクトリを環境変数JBOSS_HOMEとします。
また、WildFlyを使用した場合の例でのJBOSS_HOMEを以下のディレクトリとします。

  /opt/wildfly-9.0.2.Final (/opt/wildfly-10.0.0.Final)
テストもしくは本番環境を想定した解説なので、OSはUnix/Linux系とした構築例とします。



ドライバ系ライブラリの配置

APサーバーをインストールしたら、ドライバ系のjarファイルを所定の場所に格納します。
ドライバ系jarファイルとは、以下のような物を指します。

  • JDBCドライバ(Oracle用、PostgreSQL用など)
これらは、アプリケーション側から見た場合は直接呼び出されないものであり、PEXAエンジンもしくはAPサーバーの層を挟んで実行されます。
そのため、これらは基本的にビルド時にEARファイルにはパッキングされません。APサーバー毎の所定の位置にjarファイルを格納して下さい。

WildFlyへのドライバ系ライブラリの配置

WildFlyの場合は、JBOSS_HOMEフォルダ配下のmodulesフォルダの下にドライバ系jarファイルmodule形式で格納します。
PostgreSQLの場合、以下のフォルダになります。JDBCのパッケージによってパスが変わります。

    ${JBOSS_HOME}/modules/system/layers/base/org/postgresql/main/postgresql-9.4-1204.jdbc42.jar
Jarを格納した位置にmodule.xmlも格納する必要があります。JDBCの情報を記述します。

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="org.postgresql">
    <resources>
        <resource-root path="postgresql-9.4-1204.jdbc42.jar"/>
    </resources>
    <dependencies>
        <module name="javax.api"/>
        <module name="javax.transaction.api"/>
    </dependencies>
</module>

また、 Oracleの場合、
    ${JBOSS_HOME}/modules/system/layers/base/oracle/jdbc/main/ojdbc6.jar
Jarを格納した位置にmodule.xmlも格納する必要があります。JDBCの情報を記述します。
orai18n.jarも同じ位置に格納します。

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="oracle.jdbc">
    <resources>
        <resource-root path="ojdbc6.jar"/>
        <resource-root path="orai18n.jar"/>
    </resources>
    <dependencies>
        <module name="javax.api"/>
        <module name="javax.transaction.api"/>
    </dependencies>
</module>

JDBCのJarファイルは最新を取得し、利用してください。
よって、上記Exampleに記述されているファイル名と異なることがあります。
また、nameがパッケージと合うかもチェックする必要があります。



WildFlyの設定

WildFlyはstandaloneで実行しますので、以下のファイルに設定する必要があります。
${JBOSS_HOME}/standalone/configuration/standalone-full.xml
Pexa固有の設定がありますので、Exampleは供給します。
WildFly9.0.2.Final 標準的なconfig example(HTTPS設定済み)
WildFly9.0.2.Final リモートプリント使用config example
Wildfly10.0.0では、一部の設定内容に変更があるので、そのまま利用できません。WildFly10.0.0用のExampleを下記に表示します。
WildFly10.0.0.Final 標準的なconfig example(HTTPS設定済み)
Wildfly10.1.0では、一部の設定内容に変更があるので、そのまま利用できません。WildFly10.1.0用のExampleを下記に表示します。
WildFly10.1.0.Final 標準的なconfig example(HTTPS設定済み)


すでにWildFlyを使用していて、WildFlyのバージョンアップを行うときは、JBoss Server Migration Toolを使用して下さい。
既存のWildFly(source)と新規のWildFly(target)のバージョンを確認してツールを選びます。
Toolを解凍後、以下のDOSコマンドでMigrationを実行します。
cd C:\jboss\jboss-server-migration_1.5
jboss-server-migration --source ..\wildfly-10.1.0.Final --target ..\wildfly-15.0.0.Final

データベースの接続設定

exampleのdatasourcesタグのdatasourceのjndi-name属性にPEXADB,PEXASEQDBが含まれているものでデータソースの情報をセットします。


<datasource jta="true" jndi-name="java:jboss/datasources/PEXADB" pool-name="PEXADB_Poolnx" enabled="true">
    <connection-url>jdbc:postgresql://localhost:5432/todo49</connection-url>
    <driver-class>org.postgresql.Driver</driver-class>
    <driver>postgresql-jdbc4</driver>
    <pool>
        <min-pool-size>2</min-pool-size>
        <max-pool-size>20</max-pool-size>
        <prefill>true</prefill>
    </pool>
    <security>
        <user-name>postgres</user-name>
        <password>postgres</password>
     </security>
     <validation>
         <check-valid-connection-sql>SELECT 22</check-valid-connection-sql>
     </validation>
</datasource>
exampleのdatasourcesタグのdriversタグに以下の記述がありますが、postgreSQL以外の時は、修正する必要があります。
<driver name="postgresql-jdbc4" module="org.postgresql"/>
Oracleの場合は、以下の行に交換します。
<driver name="oracle-jdbc" module="oracle.jdbc"/>
connection-urlタグに各JDBCのスキーム、データベースのホスト名、DB接続情報をセットします。
JDBCがpostgreSQL以外の時は、driver-class,driverタグも修正します。

SEQUENCER_TABLEと他のトランザクションを分けるために、env/pexa/CommonSequencerFacadeSession.envの21行付近を
以下のようにコメントアウトから外す必要があります。
sequencer_pool_name java:comp/env/jdbc/seqPool
また、wildflyの設定で、PEXASEQDBのjta設定をfalseにする必要があります。


Queue・Topicの設定

Wildfly9.0.2Finalの場合
<subsystem xmlns="urn:jboss:domain:messagingタグの<jms-destinations>タグに
以下のようにしてQueue,Topic情報を記述します。Exampleでは追加済みです。

<jms-queue name="modelEventQueue">
    <entry name="queue/modelEventQueue"/>
    <entry name="java:jboss/exported/jms/queue/modelEventQueue"/>
</jms-queue>
<jms-queue name="modelEventDefaultQueue">
    <entry name="queue/modelEventDefaultQueue"/>
    <entry name="java:jboss/exported/jms/queue/modelEventDefaultQueue"/>
</jms-queue>
<jms-queue name="modelEventErrorQueue">
    <entry name="queue/modelEventErrorQueue"/>
    <entry name="java:jboss/exported/jms/queue/modelEventErrorQueue"/>
</jms-queue>
<jms-queue name="toDoEventQueue">
    <entry name="queue/toDoEventQueue"/>
    <entry name="java:jboss/exported/jms/queue/toDoEventQueue"/>
</jms-queue>
<jms-topic name="modelEventTopic">
    <entry name="topic/modelEventTopic"/>
    <entry name="java:jboss/exported/jms/topic/modelEventTopic"/>
</jms-topic>

Wildfly10.0.0Finalの場合
<subsystem xmlns="urn:jboss:domain:messaging-activemq:1.0">タグに
以下のようにしてQueue,Topic情報を記述します。Exampleでは追加済みです。

<jms-queue name="modelEventQueue" entries="queue/modelEventQueue java:jboss/exported/jms/queue/modelEventQueue"/>
<jms-queue name="modelEventDefaultQueue" entries="queue/modelEventDefaultQueue java:jboss/exported/jms/queue/modelEventDefaultQueue"/>
<jms-queue name="modelEventErrorQueue" entries="queue/modelEventErrorQueue java:jboss/exported/jms/queue/modelEventErrorQueue"/>
<jms-queue name="toDoEventQueue" entries="queue/toDoEventQueue java:jboss/exported/jms/queue/toDoEventQueue"/>
<jms-topic name="modelEventTopic" entries="topic/modelEventTopic java:jboss/exported/jms/topic/modelEventTopic"/>


接続ポートの設定

exampleのsocket-binding-groupタグの以下の設定で本サーバーの接続ポート番号を設定します。

<socket-binding name="http" port="${jboss.http.port:8080}"/>
または、WildFly起動時のプロパティで全体のポート番号を一括で変更する機能もあります。


メールサーバーの設定

<subsystem xmlns="urn:jboss:domain:mailタグに以下のメールセッションタグを追加します。exampleでは追加済みです。

<mail-session name="pexamail" jndi-name="java:jboss/mail/PEXAMAIL" from="jboss-pexa-sys@atrris.com">
    <smtp-server outbound-socket-binding-ref="mail-smtp"/>
</mail-session>
from属性は個々のプロジェクトによって変更してください。
exampleのsocket-binding-groupタグの以下の設定でメールサーバーを設定します。
host属性に実際のホスト名・IPアドレスをセットします。ポート番号がデフォルトの25かを確認してセットします。

    <outbound-socket-binding name="mail-smtp">
        <remote-destination host="192.168.100.1" port="25"/>
    </outbound-socket-binding>


Webホームの設定

WebページのROOTはサンプルでは、Welcomeコンテントになっていますが、PDF等の出力は各デプロイ先になるので、
印刷等の外部出力を行う場合は、以下の変更が必要です。
undertowタグのhostタグを変更します。

<host name="default-host" alias="localhost">
<location name="/wildfly" handler="welcome-content"/>
<location name="/" handler="pexa-content"/>
また、handlersタグにpexa-contentの情報を追加します。
<handlers>
<file name="welcome-content" path="${jboss.home.dir}/welcome-content"/>
<file name="pexa-content" path="${jboss.server.base.dir}/ROOT.war"/>
</handlers>



WildFlyの起動設定

以下のファイルでWildFly起動時の環境変数設定を行います。
${JBOSS_HOME}/bin\s/andalone.conf

Javaの設定

WildFlyではJava8が必須なので、PATH環境変数のJavaがJava8でない場合、以下のようにJAVA_HOME環境変数をセットします。
JAVA_HOME=/opt/jdk1.8.0_66

Java11を使用する場合、Import/Export/Printで元号を表示・読み込み変換パターンの初期値が変更になったためJava8同様に変換する場合は、
下記プロパティを指定する必要があります。
JAVA_OPTS="$JAVA_OPTS -Djava.locale.providers=COMPAT,SPI"


メモリの設定

WildFlyに割り当てるメモリは添付の起動設定では小さいので、最低でも以下の様にセットします。
JAVA_OPTS="-Xms2048m -Xmx4096m -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true"


Pexaの設定

以下のようにそれぞれのサーバー環境に合わせて記述します。

JBOSS_HOST=192.168.100.138
JAVA_OPTS="$JAVA_OPTS -Dhost_name=UAT-Atrris-138"
JAVA_OPTS="$JAVA_OPTS -Dclient_provider_url=http-remoting://$JBOSS_HOST:8080"
JAVA_OPTS="$JAVA_OPTS -Dclient_initial_context_factory=org.jboss.naming.remote.client.InitialContextFactory"
JAVA_OPTS="$JAVA_OPTS -Dprint_jndi=local_jndi_print"
JAVA_OPTS="$JAVA_OPTS -DWebBase=$JBOSS_HOST:8080"


HTML5クライアント表示の設定

HTML5クライアント画面の、Window表示タイトル、メニューカラーを指定します。
テスト環境・本番環境接続などの区別をHTML5クライアントで判断することができるようにするために使用します。

プロパティ名 意味
client_mode HTML5メニュー色を指定します。
デフォルトはWhite
HTML色名または色コード#RRGGBBで指定します。
#FFEEDD
client_name HTML5クライアント画面のWindow名を指定します。指定名称の後にプロジェクト名が表示されます。
デフォルトはPexaWorks
UAT-Portal

サブレットの設定

Servletで指定できる環境変数のセットをそのまま指定します。

JAVA_OPTS="$JAVA_OPTS -DENCODING=MS932"
JAVA_OPTS="$JAVA_OPTS -DRecvBufSize=1289"

プロパティ名 意味
ENCODING Pexaで生成されたTemplateの文字コード
Webに送信するHTMLはUTF-8ですが、
プロジェクトでは別のコードで作成されることが
ありますので指定が必要です。
デフォルトはUTF-8
MS932
RecvBufSize WebSocketサーバ受信用メッセージバッファ容量指定。単位はKバイト
Upload使用時は1280にすること
デフォルトは64
1280
ServletTimeout WebSocketサーバセッションタイムアウト指定。単位はミリ秒
デフォルトは120000
3600000
NOCACHE HTMLテンプレートイメージのメモリキャッシュ(on/off)
デフォルトはoff
on
FNAME_DUMP HTMLテンプレートファイル名コンソール表示(on/off)
デフォルトはoff
on
UA_DUMP クライアント側ブラウザUserAgent情報コンソール表示(on/off)
デフォルトはoff
on
CONN_DUMP クライアント側ブラウザからのWebSocket接続情報コンソール表示(on/off)
デフォルトはoff
on
DATA_DUMP クライアント・WebSocketサーバ間のJSONデータコンソール表示(on/off)
デフォルトはoff
on
DATA_DUMPWSR クライアント・WSRESTFulサーバ間のJSONデータコンソール表示(on/off)
デフォルトはoff
on
AutoLoginID クライアントのログイン画面表示時URLパラメータのログイン名を有効化(on/off)
デフォルトはoff
on
FORCEWSS ロードバランサー等中継機器でSSLを使用している時のみに使用、
他の時は絶対使用しないでください(on/off)
デフォルトはoff
on
FORCEWSSPORT FORCEWSS指定時のPORTを10進数の数字で指定
デフォルトは443
9443
webHost 参考リンクのホスト名(IPアドレス)
デフォルトはapserverのホスト名
192.168.100.xxx
webPort 参考リンクのポート番号
デフォルトは8080
18080
PROP クライアントプロパティファイル名の指定
デフォルトはPexa標準のプロパティ
下線の部分はプロジェクトごとに変更
クライアントメッセージ変換が必要な時は必須
env/client/res/pwtest_rich_client_plugins
PHSID 現象定数名メッセージ定義ID
デフォルトはなし
CM_PWPHST
SERRID サービスエラーメッセージ定義ID
デフォルトはなし
CM_PWSERR
AIEERID アサイン・インポートエラーメッセージ定義ID
デフォルトはなし
CM_PWSERR
WS_SERVERNAME WebSocketのサーバー名を固定で設定する。
デフォルトはHTTP Request情報
foo.co.jp
192.168.100.xxx
WS_PORT WebSocketのサーバーポート番号を固定で設定する。
デフォルトはHTTP Request情報
80
8087
WebBaseInServer WebBaseリソースがサーバー内かの指定
true/falseで指定します。
デフォルトは、true
false時は以下のWebBaseが使用されます
false
WebBase WebBaseとしてのホスト名を指定します。
デフォルトは、localhost
ホスト名以降のポート番号は無視されます。
XXXXXX
WebBasePort WebBaseがhttpのときのポート番号を指定します。
デフォルトは、8080
8085
WebBaseSSLPort WebBaseがhttpsのときのポート番号を指定します。
デフォルトは、8443
9443
JASPERFORMPREFIX JasperReportsのXXXX.jasperファイルのロードの位置,ファイル接頭語を指定します。
ファイル接頭語の後にアンダースコアが自動的に追加されます。
pwt/PWT
MSGDEFMODELMode HTML5画面のメッセージ定義で、表示項目ラベル等の表示名を変更することができますが、
さらにPexa標準のHTML5メッセージ定義モデル(PWF_HTML5MessageDef )の登録により、
表示名を変更を指定します。
プロパティ値onで機能します。
モデル変更後、${Wildfly}/ROOT.war/mmd/dbchange.txtの更新日時を新しくすることで、
サーブレットにモデル変更を通知する必要があります。
すでにメッセージ定義XMLが登録されているロケール・種別のみ対応します。
on
SESSIONLOGIN HTML5画面でWSRESTfulWebサービス時に、HttpSessionを利用してログイン状態の継続実行を指定します。
一旦ログインするとブラウザ上のログイン状態が継続され、プロジェクト先頭ページから再動作時も
ログインダイアログを表示入力する必要がないようにすることができます。
本機能の設定は、PexaWorksSetup.xlsのGeneralシートの記述も必要です。(HTML5SESSIONLOGIN)
on
SESSIONLOGINTIMEOUT Cookie及びログイン継続機能のアクセスタイムアウト値を秒単位で指定します。
デフォルト1800秒
300
COOKIELOGIN HTML5のWSRestFul機能において、ログイン時にログインユーザ情報をCookieに設定を
ookieNameと共にで指定します。
本機能の設定は、PexaWorksSetup.xlsのGeneralシートの記述も必要です。(HTML5SESSIONLOGIN)
USERID
COOKIEPATH HTML5のWSRestFul機能において、ログイン時にログインユーザ情報のCookie設定パスを指定します。
/XXX/
COOKIELOGINVALUE HTML5のWSRestFul機能において、ログイン時にログインユーザ情報の取得現象型名を指定します。
モデル内の現象型名を指定します。デフォルトは"OperatorID"
OperatorName
HTMLMENUMODE HTML5画面メニューリスト折り畳み方式
domain/scenario
デフォルトはPexaWorksSetup.xlsでのHTMLMenuListExpand指定
scenario
HTMLMENUINITMODE HTML5画面初期メニュー表示方式
open/close
デフォルトはPexaWorksSetup.xlsでのHTMLMenuListExpand指定
open
SECURECONNECTION WS互換RestFul通信時、サービス実行認証機能
デフォルトはoff
on
SECURECONNECTIONKEY WS互換RestFul通信時、サービス実行認証機能キー生成パラメータ指定
Windows例:
-DSECURECONNECTIONKEY=PWTEST%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%
XXXX
SECURECONNECTIONMAXAGE WS互換RestFul通信時、サービス実行認証機能キーの有効期間指定(分単位)
デフォルトは2日分(2880)
480

HTML5 TODO用プロパティ

HTML5 TODO用プロパティについて

プロパティ名 意味
ToDoQName TODO用メッセージキューの設定する。TODO使用時は必須 toDoEventQueue
ToDoGroupMode ToDo情報検索の値をOperatorNo/OperatorGroupMemberList/OperatorGroupNoで
取得できるOperatorGroupNoも同時に検索値として使用するときに設定する。
full
ToDoWaitLoop ToDoモデル監視ループカウンタ回数
監視ループは200ms毎にループします。
デフォルトは、5回
100
TODOWSRINT WS互換RESTFul呼び出しによるToDo受信ポーリング間隔(秒単位)を指定
デフォルトはPexaWorksSetup.xlsでのTODOWebService指定
300
ToDoWaitMode 新受信タイミングの利用を指定
デフォルトはoff
on
ToDoREQSend ブラウザからのTODOUpdate要求時の読み直し機能を指定
デフォルトはoff
on
ToDoTimeoutVal 新受信タイミングのタイムアウト間隔設定(ミリ秒単位)を指定
デフォルトは500,5000,20000,60000
1番目のタイムアウト値は正規Queue受信直後で使用
2番目のタイムアウト値は、タイムアウト回数が、受信ループカウント以上の時使用
3番目のタイムアウト値は、タイムアウト回数が、受信ループカウント*10以上の時使用
4番目のタイムアウト値は、タイムアウト回数が、受信ループカウント*100以上の時使用
400,4000,10000,80000
ToDoDUMP Queue受信状況のダンプ設定(本番では不要)
デフォルトはoff
on

HTML5 Template汎用プロパティ

HTML5 Template汎用プロパティ変更用の-Dpxwconf.XXXXの使用について
APサーバー起動プロパティで接頭語が、pxwconf.の場合は、HTML5のTemplateからブラウザへの変換時に接頭語を削除し、
新たに接頭語”__HTMP_”を付けてキーワードとして使用することができます。(先頭がアンダースコアが2個になります。)
例: pxwconf.GLSDISP=off   → __HTMP_GLSDISP = off

プロパティ名 意味
pxwconf.NOTDISP=off HTML5画面Notify画面表示リンク(NotifyMessage)非表示 pxwconf.NOTDISP=off
pxwconf.PWDDISP=off HTML5画面パスワード変更画面表示リンク(Password Change)非表示 pxwconf.PWDDISP=off
pxwconf.GLSDISP=off HTML5画面GlobalSession設定画面表示リンク非表示 pxwconf.GLSDISP=off
pxwconf.INITDISPINT=nn タブレット使用時ログイン時に特定メニューの自動表示間隔時間の設定
nnは秒単位 デフォルト 2秒
pxwconf.INITDISPINT=3
pxwconf.INITDISPTABLET=off タブレット使用時ログイン時に特定メニューの自動表示無効の設定 pxwconf.INITDISPTABLET=off
pxwconf.LOGOUT=hidden HTML5画面のLogoutボタン表示無効の設定 pxwconf.LOGOUT=hidden
pxwconf.max_upload_bytes=nnn HTML5画面において、アップロード機能の上限チェック設定(バイト単位) pxwconf.max_upload_bytes=10485760


ユーザの登録

Management ・Applicationユーザをそれぞれ設定します。
ManagementユーザはWildFly管理画面を表示するために必要です。
Applicationユーザは、リモートマシンからEJBで接続するために必要となります。
Pexaでは現在は固定のユーザ名・パスワードの設定となっています。(将来可変にする予定です)
アプリケーションユーザ名はejb3、パスワードはejb3_pexaとなります。
ユーザの登録は、bin/add-user.batを実行することが行います。実行すると以下のようになります。
What type of user do you wish to add?
 a) Management User (mgmt-users.properties)
 b) Application User (application-users.properties)
(a):aかbを入力
Enter the details of the new user to add.
Using realm 'ManagementRealm' as discovered from the existing property files.
Username : ejb3 ユーザ名を入力
Password recommendations are listed below. To modify these restrictions edit the add-user.properties configuration file.
 - The password should be different from the username
 - The password should not be one of the following restricted values {root, admin, administrator}
 - The password should contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), 1 non-alphanumeric symbol(s)
Password : ejb3_pexa パスワード入力
Re-enter Password : ejb3_pexa パスワード再入力


WildFlyの起動

以下のコマンドで起動します。
cd $JBOSS_HOME/bin
standalone.sh -c standalone-full.xml -b 0.0.0.0  -Djboss.node.name=SVR01
  1. WildFly接続元IPアドレスの設定 -b 0.0.0.0
  2. 設定ファイルの指定 -c standalone-full.xml
  3. 同一マシンで複数wildFly起動時の個別名指定(オプション)赤字は個々にユニークな名称を指定します。 -Djboss.node.name=SVR01
  4. 接続元ポート番号を同じ増分で変更する設定(例:+1000) -Djboss.socket.binding.port-offset=1000
    設定ファイル内はポート番号が8080でも、上記の設定で実際の接続元ポート番号は9080を使用するようになります。


WildFlyのSSL設定(HTTPS)

HTML5でhttps通信を行うためには、以下の手順が必要となります。
標準の設定ファイルを使用する時は、すでにSSL設定が含まれているため、サーバーSSL証明書の作成が必要です。

サーバーSSL証明書の作成

keytoolを使用して自己SSL証明書を作成します。(ブラウザでエラー証明書になりますので本来なら公式の証明書を取得しましょう)
作成された証明書のファイル(pexaserver.keystore)は${JBOSS_HOME}/standalone/configurationフォルダに置きます。
下記では"pexa.keystore"、ストアパスワードとキーパスワードは"pexassl3"で同じにします。

keytool -genkeypair -alias pexaserver -keyalg RSA  -validity 7360 -keystore pexaserver.keystore 
-storepass pexassl3 -keypass pexassl3 -dname "cn=pexa,st=tokyo,o=atrris, c=JP"


standalone-full.xml の設定(HTTPS)

標準の設定ファイルでは追加済みなので、HTTPSを使用しない時は削除します。
security-realmsタグに、作成した自己証明書を利用するsecurity-realmを追加します。
<security-realm name="SSLRealm">
    <server-identities>
        <ssl> 
            <keystore path="pexaserver.keystore" relative-to="jboss.server.config.dir" 
               keystore-password="pexassl3" alias="pexaserver" key-password="pexassl3"/>
        </ssl>
    </server-identities>
</security-realm>
Web サブシステム(subsystem xmlns="urn:jboss:domain:undertow:2.0 タグ)に、HTTPSコネクタを追加します。
<server name="default-server">に以下を追加
<https-listener name="https" socket-binding="https" security-realm="SSLRealm" />
上記の設定で、ブラウザからhttps://localhost:8443/XXXX/login.htmlにて、接続できます。XXXXは各プロジェクト名 webSocketも自動的にSSL接続になります。



WildFlyのSSL設定(EJB3)

EJB3において、Secure Socket Layerを有効として使用することが出来ます。
先にWildFlyのSSL設定(HTTPS)の設定を行った後、以下の手順で設定する必要があります。
WildFlyのSSL設定(HTTPS)ではサーバー用の自己SSL証明書が作成されます。

クライアント用自己SSL証明書の作成

Javaツールのkeytoolを利用して、クライアント用自己SSL証明書を作成します。キーパス・ストアパスともにpexassl3とします。
keytool -genkeypair -alias pexaclient -keyalg RSA -keysize 2048 -validity 7360 -keystore pexaclient.keystore 
      -storepass pexassl3  -keypass pexassl3 -dname "cn=pexa,st=tokyo,o=atrris, c=JP"
キーパス・ストアパスは同じにする必要があります。


サーバー用・クライアント用自己署名付き証明書の作成

  1. Javaツールのkeytoolを利用して、サーバー・クライアント両方の自己SSL証明書からCRTファイルを作成します。 keytool -exportcert -alias pexaserver -keystore pexaserver.keystore -rfc -storepass pexassl3 -keypass pexassl3 -file pexaserver.crt keytool -exportcert -alias pexaclient -keystore pexaclient.keystore -rfc -storepass pexassl3 -keypass pexassl3 -file pexaclient.crt
  2. CRTファイルから自己署名付き証明書を作成します。 keytool -importcert -file pexaserver.crt -keystore pexaclient.truststore -storepass pexassl3 -keypass pexassl3 keytool -importcert -file pexaclient.crt -keystore pexaserver.truststore -storepass pexassl3 -keypass pexassl3 上記コマンド実行時確認メッセージが出ますが、英語の場合、y 日本語の場合 はい を入力します。
  3. 作成された自己署名付き証明書(truststore)ファイルをコピーします。 pexaserver.truststore は ${JBOSS_HOME}standalone/conigurationにコピーします。 pexaclient.truststoreとpexaclient.keystoreは各プロジェクトの${PRJ_HOME}env/sslにコピーします。


standalone-full.xml の設定(EJB3)

  1. <security-realm name="SSLRealm">にタグ追加 <security-realm name="SSLRealm"> <server-identities> <ssl> <keystore path="pexaserver.keystore" relative-to="jboss.server.config.dir" keystore-password="pexassl3" alias="pexaserver" key-password="pexassl3" /> </ssl> </server-identities> <authentication> <truststore path="pexaserver.truststore" relative-to="jboss.server.config.dir"      keystore-password="pexassl3"/> </authentication> </security-realm>
  2. <subsystem xmlns="urn:jboss:domain:ejb3:3.0">のタグ修正 <remote connector-ref="http-remoting-connector" thread-pool-name="default"/>から <remote connector-ref="https-remoting-connector" thread-pool-name="default"/>に変更
  3. <subsystem xmlns="urn:jboss:domain:remoting:3.0">のタグ修正 <http-connector name="http-remoting-connector" connector-ref="default" security-realm="ApplicationRealm"/>から <http-connector name="https-remoting-connector" connector-ref="https" security-realm="ApplicationRealm"/>に変更


JNLP用のURLの設定

bin/standalone.confのclient_provider_urlプロパティを以下のように変更します。

-Dclient_provider_url=https-remoting://$JBOSS_HOST:8443



WildFlyリモートプリント設定

WildFlyでリモートプリントを行う場合、以下の設定が必要になります。
リモートプリントサーバーと本体サーバーとでは、standalone-full.xml設定及びearファイルの構造に違いがあるので注意が必要です。

本体側standalone-full.xml の設定

  1. security-realmsタグへの追加 <security-realm name="ejb-security-realm"> <server-identities> <secret value="ZWpiM19wZXhh"/> </server-identities> </security-realm> 上記のSecret valueはBase64で、ejb3_pexaを変換したものとなります。
  2. <subsystem xmlns="urn:jboss:domain:remoting:3.0">への追加 <outbound-connections> <remote-outbound-connection name="remote-ejb-connection" outbound-socket-binding-ref="remote-ejb" username="ejb3" security-realm="ejb-security-realm" protocol="http-remoting"> <properties> <property name="SASL_POLICY_NOANONYMOUS" value="false"/> <property name="SSL_ENABLED" value="false"/> </properties> </remote-outbound-connection> </outbound-connections>
  3. <socket-binding-group name="standard-sockets">への追加 <outbound-socket-binding name="remote-ejb"> <remote-destination host="localhost" port="9080"/> <!-- 赤字の部分はリモートマシンの情報をセット--> </outbound-socket-binding>
リモートプリントサーバー側は標準的な設定となります。


jndi_list.xmlの設定

env/mapping/list/jndi_list.xmlの設定をする必要があります。本体サーバー用(port:8080)の設定をremote_SVR01、
リモートサーバー用(port;9080)の設定をremote_SVR02とします。
下記の例では、同一マシンになっているので、ポート番号でサーバーを分けています。

<jndi name="remote_SVR01" sync="false">
    <property>
        <entry key="java.naming.factory.initial" value="org.jboss.naming.remote.client.InitialContextFactory" />
        <entry key="java.naming.provider.url" value="http-remoting://192.168.100.138:9080" />
        <entry key="java.naming.security.principal" value="ejb3" />
        <entry key="java.naming.security.credentials" value="ejb3_pexa" />
        <entry key="print.jasper.form.url" value="env/print/jasper/" />
        <entry key="print.jasper.spool.url" value="http://192.168.100.138:8080"/>
    </property>
</jndi>
<jndi name="remote_SVR02" sync="false">
    <property>
        <entry key="java.naming.factory.initial" value="org.jboss.naming.remote.client.InitialContextFactory" />
        <entry key="java.naming.provider.url" value="http-remoting://192.168.100.138:9080" />
        <entry key="java.naming.security.principal" value="ejb3" />
        <entry key="java.naming.security.credentials" value="ejb3_pexa" />
        <entry key="print.jasper.form.url" value="env/print/jasper/" />
        <entry key="print.jasper.spool.url" value="http://192.168.100.138:9080"/>
    </property>
</jndi>



外部から接続するJMSの設定

外部からWildFlyのJMSに接続する場合は、JMS用のユーザをロールguestに新規登録する必要があります。
また、外部接続用のJMSのQueueも新規に登録します。

JMS用ユーザの登録

JMS用のユーザをロールguestに新規登録するために、bin/add-user.batを実行します。すでに登録済みなら不要です。
C:\jboss\wildfly-10.1.0.Final\bin>add-user
What type of user do you wish to add?
 a) Management User (mgmt-users.properties)
 b) Application User (application-users.properties)
(a): b Application Userなので、b
Enter the details of the new user to add.
Using realm 'ApplicationRealm' as discovered from the existing property files.
Username : jmsuser JMSユーザ名
Password recommendations are listed below. To modify these restrictions edit the add-user.properties configuration file.
 - The password should be different from the username
 - The password should not be one of the following restricted values {root, admin, administrator}
 - The password should contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), 1 non-alphanumeric symbol(s)
Password :JMSユーザパスワード
WFLYDM0102: Password should have at least 1 non-alphanumeric symbol.
Are you sure you want to use the password entered yes/no? yes
Re-enter Password :JMSユーザパスワード
What groups do you want this user to belong to? (Please enter a comma separated list, or leave blank for none)[]: guestロール名
About to add user 'jmsuser' for realm 'ApplicationRealm'
Is this correct yes/no? yes
Added user 'jmsuser' to file 'C:\jboss\wildfly-10.1.0.Final\standalone\configuration\application-users.properties'
Added user 'jmsuser' to file 'C:\jboss\wildfly-10.1.0.Final\domain\configuration\application-users.properties'
Added user 'jmsuser' with groups guest to file 'C:\jboss\wildfly-10.1.0.Final\standalone\configuration\application-roles.properties'
Added user 'jmsuser' with groups guest to file 'C:\jboss\wildfly-10.1.0.Final\domain\configuration\application-roles.properties'
Is this new user going to be used for one AS process to connect to another AS process?
e.g. for a slave host controller connecting to the master or for a Remoting connection for server to server EJB calls.
yes/no? no


外部接続用JMSの設定

testQueueという名称のキューを登録する場合は、以下のように設定します。すでに登録済みなら不要です。
<jms-queue name="textQueue" entries="queue/testQueue java:jboss/exported/jms/queue/testQueue"/>



開発環境の設定

APサーバー等、開発時の環境変数をセットする必要があります。。
EclipseでAntを実行している時も同じように環境変数をセットします。
  1. J2EE_SERVERの変更 wildflyをセットします。(小文字で記述)
  2. JBOSS_HOMEの変更 /opt/wildfly-9.0.2.Final(インストール格納場所により変わります)
  3. JBOSS_DEST_EARの変更 /opt/wildfly-9.0.2.Final/standalone/deployments (インストール格納場所により変わります) ${JBOSS_HOME}/\standalone/deployments
  4. JAVA_HOMEの変更 使用するJavaはjava8以上になります。 /opt/jdk1.8.0_66

PEXAClientLauncharの指定

serverTypeにwildfly、wildfly-sslが選択できるようになりました。
port番号はDefaultで8080(8443)をセットしてください。
EJB3-SSL接続時は、serverTypeとしてwildfly-ssl ポート番号を8443を使用します。
標準のEJB接続の場合は、serverTypeとしてwildfly ポート番号を8080を使用します。


Antの実行

WildFlyでは、HTML5用ServletもプロジェクトのEARファイル内に格納する必要があるために、以下の順番でAntターゲットを実行してください。
  1. build-works.xmlのターゲット build-HTML5を実行します。HTML5用ServletのWARファイルの作成 ant -f build-works.xml build-HTML5
  2. build-app.xmlのターゲット install-earを実行します。上記WARファイルを含むEARファイルの作成 ant -f build-app.xml install-ear
WildFlyでHTML5を実装しない時は、build-HTML5ターゲットは実行しないでください。 実行した場合はいったんbuild/tmpをクリアして再度install-earターゲット実行します。 ちなみにbuild-works.xmlでbuild-HTML5 earを実行すると同じ結果になります。 ant -f build-works.xml build-HTML5 ear


Antの実行(リモートプリントサーバー用)

リモートプリントサーバー用のEARファイルを作成する時は、上記のAnt実行後に以下のAntを実行してEARファイルを別に作成する必要があります。
リモートプリントサーバー用のEARファイルを作成する時は以下のターゲットを実行します。他のターゲットと同時に実行できません。
ant -f build-app.xml build-ear-wildfly-remote

EARファイル作成後は、手動でbuild/ear/XXX.earファイルをリモートプリントサーバーのstandalone/deploymentsフォルダにコピーする必要があります。



WildFlyの制限事項

WildFlyでは以下の項目がまだ実装されていません。
  1. EntityBean EJB3からEntityBeanがJPAに変更されたため調査中。



Copyright © 2006, Atrris Corporation