「J2EEサーバー」 カテゴリー
1つ前のカテゴリーは、データベース です。
次のカテゴリーは、バックアップ です。
2009年5月19日
JDBCコネクターのおかげで深い溝にハマった
クライアントのサーバー立ち上げに際して、テスト環境を単純に横もちしたのだがDBへのインサート時にエラーが発生。
なんとも訳の分からん事態に右往左往する羽目になった。
- ・いかにもサーバーが怒っているようなエラー
Caused by: java.sql.SQLException: !Statement.GeneratedKeysNotRequested!
この内容にたどり着きグぐってここの記事を探し出すまでに数時間、いつものように冷や汗をかかされた。
結局のところJDBCコネクターを古いものに入れ替えて一件落着。ヨカッタベ~
投稿者: 管理者 日時: 2009年5月19日 18:43 | パーマリンク | コメント (0) | トラックバック (0)
2009年4月25日
JBoss4.2から5.0に向けて
クライアントの新システム作成にあたって使い慣れたJBoss4からJBoss5の利用を検討した。
こんな難しいサーバーの中身はさっぱり分からなので、とにもかくにもサーバーサイドが吐き出すERRORが怖い。十分に確認を、、、ということで雨の一日テストに明け暮れた。
その経過を・・・
1) 先ず、jboss-5.0.1.GA-jdk6.zipを落としてきてWindowsで動作確認。単に起動しただけなのに無茶苦茶にエラーが。
2) マシンのjdkが1.5だった。jdk1.6 をセットして走るとエラーなし。
3) こりゃ楽チンと、DefaultDSをMySQL5.0に変更して走るとバオーっとエラーが。
4) まだ、jdk1.6ではいろいろあるのかな?とjdk1.5でも走るjboss-5.0.1.GAで試したが同じ。
5) JBoss5.0ではサーバー種類にstandardとwebが増えていた。j2EE対応がstandardなのかも知れないとこちらを試したが・・・同じ。
6) ビルドし直したらええのかな?と思ってJBossのソースからLinuxでビルド。走ってみるとまたもや同じ。
7) そこそろ降参かなと思いながらググッてみると横文字文化の住人がなにやらサーバーをallでいくとええ様なことを言っていた。・・・そう読んだ。
8) まさか・・・と思いながらも最後の挑戦。・・・いったいった!
9) 詳しくは分からないが・・・とにかくいった。すべてのモジュールが立ち上がっているallサーバーだったのでカバーできたのかも知れない。defaultサーバーでは手を加えないとアカンというのは困ったものだが、、、そのうちに直るかと納得。
(最小セットアップ)
1. conf/login-config.xml conf/standardjbosscmp-jdbc.xml を以前の記事のようにMySQLにむけて変更。
2. deploy/mysql-ds.xml を同じくセットの上、deploy/hsqldb-ds.xmlを削除。
3. docs/examples/jms/mysql-persistence-service.xmlをdeploy/messaging/にコピーし、そこにあるhsqldb-persistence-service.xmlを削除。
・・・でOK。
投稿者: 管理者 日時: 2009年4月25日 21:48 | パーマリンク | コメント (0) | トラックバック (0)
2007年12月 1日
JBoss4.2x上でのJSPコンパイルエラーへの対応
JDK1.5でJBoss4.2xを稼動させていたが、JSPにGenericsを使用したときコンパイルできないというエラーが出た。
エラー内容: Syntax error, parameterized types are only available if source level is 5.0
調べたところデフォルトではJDK1.4の使用を想定しているようで、JBossにJSPのコンパイルはJDK1.5を使うように設定する必要があるらしい。
設定ファイル: ${jboss.home}/server/default/deploy/jboss-web.deployer/conf/web.xml
に以下を追加。(250行目あたりの servletタグの中)
<init-param>
<param-name>compilerSourceVM</param-name>
<param-value>1.5</param-value>
</init-param>
こんなことで3時間ほどネットを探索させられた・・・くぅ~
投稿者: 管理者 日時: 2007年12月 1日 17:09 | パーマリンク | コメント (0) | トラックバック (0)
2006年12月29日
( Vine Linux 4.0 ) に向けて・・・JBoss の移行メモ
現時点での JBoss のバージョンは 4.0.5.GA になっている。
4.0.4.GA と同様にインストールしてみたが、起動スクリプトが少し変わっていたので変更箇所をメモっておく。
1). /usr/local/bin/jboss/bin/run.sh
- 前と同じように先頭に記載
JAVA_HOME=${JAVA_HOME:-"/usr/java/jdk1.5.0_10"}それぞれの環境に合わせること
2). /usr/local/bin/jboss/jboss_init_redhat.sh
JBOSS_HOME=${JBOSS_HOME:-"/usr/local/bin/jboss"}それぞれの環境に合わせること
JAVAPTH=${JAVAPTH:-"/usr/java/jdk1.5.0_10/bin"}JBOSS_CONF=${JBOSS_CONF:-"all"}
JBOSS_HOST=${JBOSS_HOST:-"127.0.0.1"}
JBOSS_CMD_STOP=${JBOSS_CMD_STOP:-"$JAVAPTH/java -classpath $JBOSSCP org.jboss.Shutdown --shutdown"}
restart)
$0 stop
sleep 5 ← これを追加
$0 start
3). JDBC コネクタが mysql-connector-java-3.1.13-bin.jar から mysql-connector-java-5.0.4-bin.jar にバージョンアップしていたが問題なし
(注)
起動スクリプトの JBOSS_HOME/bin/jboss_init_redhat.sh に自動起動設定を追加
# chkconfig: 3 80 20前は書いてあったと思ったが・・・
# description: JBoss EJB Container
・・・以上で OK!
投稿者: 管理者 日時: 2006年12月29日 15:32 | パーマリンク | コメント (0) | トラックバック (0)
2006年9月 7日
(復興作業)アプリケーション・サーバー ( JBoss ) のインストール
サーバーの崩壊から約2週間たって、やっと JBoss のインストールのところまできた。このあたりは試行錯誤の末、やっとこさ立ち上げたので記憶も定かでなく、記録もない状態の中でどうなることやら・・・
J2EEサーバーとして Apache Geronimo が立ち上がり始めているので、この際に切り替えようかとも考えたが、、、とりあえず、JBoss で急ぐことにした。
1). JBoss のダウンロード
- ここから JBoss の最新版をダウンロードする。もっとも最新版でいいかどうかは状況にもよるだろうが・・・
- # cd /usr/local/bin/
# unzip jboss-4.0.4.GA.zip
# ln -s jboss-4.0.4.GA jboss
- a) JBoss ユーザーの作成
JBoss 起動スクリプト(ここでは jboss_init_redhat.sh を使用)は jbossユーザーで起動するようになっているので、面倒だからユーザー jboss とグループ jboss を作る。
# groupadd jboss
# useradd jboss -d /usr/local/bin/jboss -g jboss
# chown -R jboss.jboss /usr/loval/bin/jboss-4.0.4.GA
b) 起動用スクリプトの修正
1) jboss_init_redhat.sh は内部で起動用スクリプト run.sh を使用するのでこれを修正
JAVA_HOME=${JAVA_HOME:-"/usr/java/j2sdk1.4.2_12"}
・・・と、環境変数 JAVA_HOME をセットする行を先頭あたりに挿入する。念の為に run.sh でJBoss が起動するか確認しておく。
2) 次に jboss_init_redhat.sh を修正
java のパスにかかわる2箇所と、restart の stop と start の間に 'sleep 5' を挿入する。
JAVAPTH=${JAVAPTH:-"/usr/java/j2sdk1.4.2_12"}
CMD_STOP="$JAVAPTH/java ・・・と $JAVAPTH を追加
sleep 5 ・・・を $0 stop と $0 start の間に挿入
・・・これも jboss_init_redhat.sh start と stop を実行して確認(/usr/local/bin/jboss/server/all/log/)しておく。
- # cp /usr/local/bin/jboss/bin/jboss_init_redhat.sh /etc/init.d/jboss
# chkconfig --add jboss
・・・と、登録し、# chkconfig --list jboss で確認しておく
5). MySQL に接続
- a) 先ず、MySQL-JDBCドライバーをダウンロードする。
インストール作業を急ぐために、真新しいバージョンではなく実績のあった 3.1 系のものを使う。今の最新バージョンは 3.1.13 で、ここからダウンロードした。当初、tar.gz ファイルをダウンロードしたのだが展開できなかったので zip ファイルを再ダウンロードした。よくあることなので気にはなる・・・
b) ダウンロードした zip ファイルを展開して出てきた mysql-connector-java-3.1.13-bin.jar を /usr/local/bin/jboss/server/all/lib/ にセットする。所有者の変更を忘れないように・・・
c) JBoss 各種の設定ファイルを MySQL 用に修正する( /usr/local/bin/jboss/server/all/ 配下)。
- 1) conf/standardjaws.xml の defaultDS を MySQLに変更
2) conf/standardjbosscmp-jdbc.xml の defaultDS を MySQLに変更
3) conf/login-config.xml に このサイト認証用 login-module を追加
4) データソース(JDBCConnectionPool)を作成
- docs/examples/jca/mysql-ds.xml を deploy/ にコピーして修正
6) deploy/jms/hajndi-jms-ds.xml を削除
7) deploy-hasingleton/jms/hsqldb-jdbc2-service.xml を削除
8) deploy-hasingleton/jms/hsqldb-jdbc-state-service.xml をmysql-jdbc-state-service.xml に名前変更
- 以前は削除していたのだがエラーが出るためにこのようにすると直った・・・理由はまったく不明のまま・・・
- mysql-jdbc2-service.xmlがデフォルトのデータソース名(DefaultDS)を参照するように変更する.
<depends optional-attribute-name="ConnectionManager">
jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
- a) テーブルの作成
MySQL の初期設定では test というデータベースが作成されているので、ここにテスト用テーブルを作成する。
$ mysql -u root -pxxxxxxxx
mysql > use test
CREATE TABLE HELLO_WORLD_TABLE (
NO INTEGER NOT NULL,
LANGUAGE VARCHAR(50),
MESSAGE VARCHAR(100),
PRIMARY KEY(NO)
);
INSERT INTO HELLO_WORLD_TABLE
VALUES ( 1 , '日本語' , 'こんにちわ 世界');
INSERT INTO HELLO_WORLD_TABLE
VALUES ( 2 , '英語' , 'Hello World');
SELECT * FROM HELLO_WORLD_TABLE;
- ここから neverbird.zip をダウンロードして、展開して出てくる neverbird.war を deploy にコピー
- https://www.bit-consul.net:8080/neverbird/
・・・で、確認できるハズなのだが、我が家のルーターは 8080番ポートが塞がっており、外部からは確認できないので急遽 Apache との連携をセットアップすることにした。
- JBoss の管理コンソールは初期設定では無防備になっているので、これにアクセス認証をセットする。
a) deploy/jmx-console.war/WEB-INF/jboss-web.xml
- <security-domain>java:/jaas/xxxxxxxx</security-domain>
(xxxxxxxx はconf/login-config.xml にセットした login-module名)
b) deploy/jmx-console.war/WEB-INF/web.xml
<security-constraint> 部のコメントを外し、<role-name> を変更
<login-config> 部の <realm-name> を変更
<security-role> 部の <role-name> を変更
- <appender name="FILE" 要素に <param name="Threshold" value="INFO"/> を追加
<appender name="console" 要素を <param name="Threshold" value="ERROR"/> に修正
以上で、JBoss の復旧が完了したと思われる。
が、、、かってのサーバーのかすかな記録には、バグ対応の為に deploy/iiop-service.xml を修正するような記述があるので、その箇所を残しておく。
- <mbean code="org.jboss.iiop.CorbaORBService" ・・・部に
<attribute name="SunJDK14IsLocalBugFix">false</attribute> 追加とある
ログを調べてもエラーは出ていなかったので、上記はとりあえず反映させていない。・・・・
投稿者: 管理者 日時: 2006年9月 7日 20:25 | パーマリンク | コメント (0) | トラックバック (0)