自宅サーバー構築メモ The last update of this page 2007/01/13
使用するソースとダウンロード先
JBOSS http://labs.jboss.com/portal/jbossas/download
J2SDK http://www.sun.com/download/
インストール
先にインストールされているjavaを削除しておく
yum remove java

J2SEインストール
mkdir /usr/java
cd /usr/java
chmod 544 jdk-1_5_0_10-linux-i586-rpm.bin
./jdk-1_5_0_10-linux-i586-rpm.bin
実行途中「Do you agree to the above license terms?[yes or no]」とライセンス承諾の是非を聞かれるので、「yes」と入力すること

環境変数の設定
vi /root/.bash_profile
以下の内容を追加
JAVA_HOME=/usr/java/jdk1.5.0_10
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME PATH

追加した内容を反映させる
source /root/.bash_profile

確認
java -version
以下のような内容が出力されるとOK
java version "1.5.0_10"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_10-b03)
Java HotSpot(TM) Client VM (build 1.5.0_10-b03, mixed mode, sharing)

JBOSSのインストール
cd /usr/local/src
unzip jboss-4.0.5.GA.zip
mv jboss-4.0.5.GA /usr/local/jboss
設定
jboss-service.xmlの編集
vi /usr/local/jboss/server/default/deploy/jbossweb-tomcat55.sar/META-INF/jboss-service.xml
変更内容
<attribute name="UseJBossWebLoader">false</attribute>

<attribute name="UseJBossWebLoader">true</attribute>
これがfalseだとWAR側でEJBをlookupしてキャストする際、 同じクラス名でもWARのクラスローダによりロードされたクラスと EJB側のクラス(UnifiedClassLoaderでロードされる)は異なるのでClassCastExceptionが発生するため

jboss-service.xmlの編集
vi /usr/local/jboss/server/default/conf/jboss-service.xml
変更内容
<attribute name="TransactionTimeout">300</attribute>

<attribute name="TransactionTimeout">3600</attribute>
300(5分)だと、非同期処理にて終了しない場合があるので、3600(60分)に変更

ユーザー”jboss”を作成
useradd jboss

JBOSSの置かれているディレクトリのファイルすべての所有者をjbossユーザーに変更
chown -R jboss.jboss /usr/local/jboss

環境変数の設定
su - jboss
vi ~/.bash_profile
以下の内容を追加
JAVA_HOME=/usr/java/jdk1.5.0_10
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME PATH

追加した内容を反映させる
source ~/.bash_profile

起動スクリプト作成
cp /usr/local/jboss/bin/jboss_init_redhat.sh /etc/init.d/jboss
vi /etc/init.d/jboss
追加内容
# chkconfig: 3 80 20
# description: JBoss EJB Container
chkconfigに登録させるため、はじめの3行目付近に追加しておく

変更内容
JAVAPTH=${JAVAPTH:-"/usr/local/jdk/bin"}

JAVAPTH=${JAVAPTH:-"/usr/java/jdk1.5.0_10/bin"}

JBOSS_CMD_STOP=${JBOSS_CMD_STOP:-"java -classpath $JBOSSCP org.jboss.Shutdown --shutdown"}

JBOSS_CMD_STOP=${JBOSS_CMD_STOP:-"$JAVAPTH/java -classpath $JBOSSCP org.jboss.Shutdown --shutdown"}

JBOSSを自動起動させるように設定および実行権付加
chkconfig --add jboss
chmod 755 /etc/init.d/jboss