-
Notifications
You must be signed in to change notification settings - Fork 4
Bluemixを使う
SIT ADのアーキタイプで作成したWebアプリケーションはBluemix上で動かすことができます。 ここではその手順を説明します。
- 初回準備の手順
- Bluemixのアカウント作成
- プロジェクトごとの手順
- Bluemixのデプロイ情報設定
- MySQLの接続情報取得
- DBスキーマ最新化&テスト
以下のURLからBluemixのアカウントを作成します。
https://console.ng.bluemix.net/
アカウントを作成したら、Mavenのsettings.xmlにBluemixのログイン情報を設定してください。 settings.xmlは<user_home>/.m2ディレクトリ以下にあります。無い場合は新規作成してください。
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<servers>
<server>
<id>cloud-foundry-credentials</id>
<username>your bluemix username</username>
<password>your bluemix password</password>
</server>
</servers>
</settings>
プロジェクト直下にあるpom.xmlに以下のBluemixのプロパティを設定します。
<properties>
<cf.appname>${project.artifactId}</cf.appname>
<cf.target>your target</cf.target>
<cf.org>your org</cf.org>
<cf.space>your space</cf.space>
</properties>
cf.appnameは全Bluemix環境で一意である必要があります。後述のプッシュの際に以下のエラーメッセージで失敗した場合は重複しているので、適宜別の名前に変更してください。
[ERROR] Failed to execute goal org.cloudfoundry:cf-maven-plugin:1.1.2:push (default-cli) on project myproject: Error while creating application 'myproject'. Error message: '400 Bad Request'. Description: 'The host is taken: myproject' -> [Help 1]
cf.targetはAPIのエンドポイントURLで、使用しているBluemixの地域ごとの値を指定します。
- 米国南部 https://api.ng.bluemix.net
- 英国 https://api.ng.eu-gb.bluemix.net
- e.t.c.
以下のMavenコマンドを実行し、ローカルでDBスキーマとJavaソースを同期を行った後、Bluemix上のMySQLサービスをWebアプリケーションにバインドさせます。
mvn -P mysql,db-migrate
mvn cf:push -P mysql,mysql-bluemix,cf
Bluemixにログインし、ダッシュボード>アプリケーションからMySQLの資格情報を参照し、pom.xmlに設定します。
https://console.ng.bluemix.net/login
<profile>
<id>mysql-bluemix</id>
<properties>
:
<db.name>dbname</db.name>
<db.host>host</db.host>
<db.username>username</db.username>
<db.password>password</db.password>
:
</properties>
</profile>
以下のMavenコマンドを実行し、Bluemix上のMySQLのDBスキーマを最新化します。
mvn flyway:migrate -P mysql,mysql-bluemix
DBスキーマの最新化が成功したら以下のMavenコマンドを実行し、Bluemix上のWebアプリケーションをテストします。
mvn -P it -DbaseUrl=http://<your application name>.mybluemix.net
※Bluemix上でのテストは以下のエラーで失敗します。
予期しないエラーが発生しました ロケーター(link=ログアウト)で指定される要素は画面上で見つかりませんでした。ロケーターが誤っているか、操作のタイミングが早い可能性があります。
このエラーは、Bluemix上でwas-libertyの認証・認可の設定が無効になっているために発生します。 設定箇所は/tools/was-liberty/server.xmlです。無効になっている原因は現在調査中です。
SIT-ADではBluemixの操作にCloud Foundry Maven Pluginを使用しています。 Cloud Foundry Maven Pluginの詳細な使用方法についてはこちらを参照してください。
https://docs.cloudfoundry.org/buildpacks/java/build-tool-int.html#maven