skillup

技術ブログ

Java

CentOS上にglassfish構築+arquillianテスト

投稿日:2015年6月13日 更新日:

JavaEEの開発でアプリケーションサーバーとしてglassfishを使っています。

今回、CentOS(ver6.6)に立てる機会があったので、そのネタを共有したいと思います。

経緯

基本、いつもはローカルで開発して、Gitで共有リポジトリにプッシュしています。

共有リポジトリはCentOSですが、コミットと同時にJenkinsでビルドし、テストまで行っています。

しかし、DBのテストの場合、当然DBが見えないとテストが行えません。

glassfish上でJavaのプログラムを動かす場合、DBの情報もglassfishに格納されているのでglassfishを立てないとDBのテストができません。

そこで、CentOS上にglassfishを立てる必要性がでてきました。

DBのテストに関してはarquillianを使っているので同時にarquillianの設定もする必要があります。

※下記一部を除きすべてroot権限で行います。なお現状のversionは4.1です。

CetnOSをglassfish上にインストール

ポートなどはディフォルトで
8080 HTTP
8181 HTTPS
4848 Administration
です。

変更したい場合は下記ファイルの

この部分を修正するようにしましょう。

起動
/usr/local/glassfish4/glassfish/bin/asadmin start-domain

再起動
/usr/local/glassfish4/glassfish/bin/asadmin restart-domain

停止
/usr/local/glassfish4/glassfish/bin/asadmin stop-domain

が正常に行われていればひとまずOKです。

glassfishユーザー設定

glassfishユーザーを作成し、権限を変えます。

で無事に起動することを確認

serviceコマンドでの実行(centOS7以降はいらないかも)

起動コマンドをいちいち見に行くのが大変なのでserviceコマンドから実行できるようにします。

 

保存後、実行権限を付与
chmod +x glassfish

service glassfish (start|restart|stop) で起動すればOkです。

※下記エラーが表示される場合

glassfish を起動中: /usr/local/glassfish4/bin/asadmin: line 52: exec: java: not found

Javaが見えていないらしいのでjavaの実行パスを直で記述

なので
vim /usr/local/glassfish4/bin/asadmin

JAVAの部分を2か所コメントアウトしパスを修正

管理画面からログイン

この状態だとまだ管理画面からログインできるようにはなっていません。

管理画面からユーザー:パスワードを入力してログインするには下記の設定が必要です。

パスワード設定
/usr/local/glassfish4/glassfish/bin/asadmin change-admin-password
下記画面がでてきます。

メッセージ

この状態でhttp://ドメイン:4848/にアクセスすると管理画面が開く。(信頼されない証明書うんぬんがでるが無視してアクセス)

ユーザー:パスワードを入力すればOK

glassfishからDBへの接続

基本的に、glassfishでDB接続(以前書いたエントリー)

のままでOK。

注意点としてはMySQLのドライバーが必要

ここよりmysql-connector-java-5.1.23.jarをダウンロード
http://dev.mysql.com/downloads/connector/j/

/usr/local/glassfish4/glassfish/lib/mysql-connector-java-5.1.23.jar に配置し、

管理画面からconfiguration→defaultconfig→JVMsetting→PathSettingの
NativeLibraryPathSuffixにmysqlのフルパスを入力(キャプチャ画像参考)

SnapCrab_JVM Path Settings - Google Chrome_2015-6-11_16-36-24_No-00

Jenkinsからの起動確認

sercure-admin状態のままだと、

com.sun.jersey.api.container.ContainerException:  [status: REDIRECTION reason: Found]

というエラーがでてしまい、テストが通らない。そこで下記のように設定

(※ただし、こうすると管理画面からアクセスできなくなるので注意。)

arqullianの設定ファイルを下記のように設定(パスは /src/test/resources/arquillian.xml )

jenkinsからビルドするか、pom.xmlのあるディレクトリでmvn testで無事実行されればOK。

Java EE 7 を試すために CentOS に GlassFish をインストール
GlassFish管理コンソールのリモート接続
Arquillian with managed glassfish works under windows crashes under linux
Glassfish v4をCentOS6.4へインストール

-Java
-, , , ,

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

no image

Javaのコーディングルール

私自身、Javaで仕事をするようになってから3ヶ月ちょっとがたちました。 もともとPHPで仕事はしていましたが、我流でやっていたこともあり、コーディングのルールとかがいい加減だったんですよね・・ ボス …

no image

サーブレットのスコープ

JavaEEではスコープアノテーションによって変数のスコープを使い分けられたのですが、サーブレットの場合はプログラムの中で使い分けます。 通常はページ、リクエストとセッション、アプリケーションぐらいで …

no image

dbUnitの使い方

えーJavaで有名なテストツールDBUnitについて。 DbUtilではありませんので間違えないように。(私は最初間違えました・・・) まだ全然使い込んでるわけではありませんがどんなことができるかとい …

no image

Listの簡便な書き方

このエントリーともかぶりますが、リストにクラスを代入するときの簡便な書き方の紹介です。 名前と年齢のプロパティをもつ簡単なクラス(Hoge)をListに格納しようとします。 普通に書くと [crayo …

no image

JSFのテンプレート機能

Contents1 保守性の向上で必要なHTMLの考え方1.1 サンプル1.2 ファイル構成1.3 ソース1.3.1 静的なファイル群1.3.2 テンプレート1.3.3 アクセスファイル1.4 Net …

アーカイブ