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コマンドが失敗します。
例えば環境変数にこんな設定をすると
こんなログが出力されます。
/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ジョブ開発ではまったところ
以上、参考になれば幸いです。
![blog.fujiu.jp [クラウド] BluemixのJavaアプリ開発ではまったところと対処方法](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1R-AYoaqYY1VhIabLonkZC0SUoQOL0XSdQgYRKpj2eqVq979R5WJzf5eyhfXjSMe9Bq7KJUfbgcOJXf_T6Wr3f4ud7uzo4SuKRY1_DHjLQiY0UtFQSeJIdKqQyatqc39l9qzvsu0NQxI/s200/bluemix03.png)

![blog.fujiu.jp [クラウド] Bluemix にJavaアプリを実装するまで](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj215u2MU7iQa-eiZdoPl7wl4tP6fdGNlbZ1CiUhgOi63qaj7AGmdhEFshYzXo-7xVtFdfqWJbF2837rhpfOFSNCR-sGw_KC2QjwTSwYRaEHUDbuUSjj0oU7Fk4HLTxEpoWS_vkd0MDpxo/s200/TweetNicoMovieForQuerychan.png)







![blog.fujiu.jp [Azure] クエリちゃんの動画投稿数をツイートするサービス をGitHubに公開するまで](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgW66RczDaGg9F5RMCa-DNeDf995YmOviVO5NEAnb9-jk8tbVneiSedJSj6G0PD1mJnl6jO3FwwGGsoo8DCyEzWKK0fGFHOscS0OKL7GdjHJ0NWs5wNQV4F8bu1bLxDeg64fXnnSQJhW44/s200/tweet_nico.png)







