Skip to content

Bluemixを使う

kumakuratk edited this page Jan 10, 2017 · 16 revisions

SIT ADのアーキタイプで作成したWebアプリケーションはBluemix上で動かすことができます。 ここではその手順を説明します。

  • 初回準備の手順
    • Bluemixのアカウント作成
  • プロジェクトごとの手順
    • Bluemixのデプロイ情報設定
    • MySQLの接続情報取得
    • DBスキーマ最新化&テスト

初回準備

Bluemixのアカウント作成

以下の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>

プロジェクトごとの手順

Bluemixの設定

プロジェクト直下にある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の地域ごとの値を指定します。

MySQLの接続情報取得

以下の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