2016年4月23日土曜日

[クラウド] BluemixのJavaアプリ開発ではまったところと対処方法

The programming pitfalls in Bluemix

コンソールJavaアプリとして開発した
クエリちゃんの動画投稿数をツイートするサービス
をIBMのクラウドサービス・Bluemixで実行してはまったところと対処方法をまとめてみました。

ソースはソースはGitHubにあります。
https://github.com/mtk-f/TweetNicoMovieForQuerychan


環境

  • Eclipse Mars. 2 でMavenプロジェクトとして開発したコンソールJavaアプリ


Bluemixの環境変数ではまった

このアプリはTwitter4jライブラリーを使ってツイッターに文章を投稿します。
投稿するにはツイッター用のAPI KEYを設定する必要があります。
API KEYは非公開パラメーターなのでソースに載せることができません。

Twitter4jライブラリーはAPI KEYをソースに書く以外に環境変数に設定する方法があり、Bluemixはダッシュボードから環境変数を設定できます。
Twitter4jの環境変数はピリオド(ドット)の文字を含むのですが、Bluemixはピリオドを含む変数名を設定すると実行時にエラーになります
ピリオドを含む環境変数名はBluemixのbashでexportコマンドが失敗します。

例えば環境変数にこんな設定をすると
blog.fujiu.jp [クラウド] BluemixのJavaアプリ開発ではまったところと対処方法

こんなログが出力されます。
/bin/bash: line 20: export: `twitter4j.oauth.consumerKey=1234': not a valid identifier

対策としてピリオドを含まない環境変数を使うように対応しました。


Bluemixのログではまった

標準出力はBluemixのログに出力されるのですが、標準出力した順番とログに出力される順番は一致しないことがあります。
例えば次のJavaアプリを実行すると


Bluemixのログに次のように出力されました。


ログを読むときは時系列順に読み替える工夫が必要です。



関連ブログ

[クラウド] Bluemix にJavaアプリを実装するまで
[Java] Android StudioやEclipseのお節介な警告を消す方法
[Azure] クエリちゃんの動画投稿数をツイートするサービス をGitHubに公開するまで
C#のAzure用Webジョブ開発ではまったところ

以上、参考になれば幸いです。

0 件のコメント:

コメントを投稿