IBM i (AS/400)がTwitterへ呟く
以前、g*wsでJavaやGroovyで使える、Twitterライブラリ”Twitter4j”のお話を聞いたので、”IBM i(※以下AS/400)”から、Twitterへ呟いてみました。(´-`).。oO(・・・・・・)
Twitter4jの使い方などは、他に詳しく説明されている方が、おられますので割愛します。
- Twitter4jを使ったJavaクラス”AS400TwitterJ”を以下の様に作成。
import twitter4j.Twitter; public class AS400TwitterJ{ public static void main(String[] args){ if(args.length != 3) { System.out.println("Usage [User] [Password] [Message]"); System.out.println(args.length); return ; } String user = args[0].trim(); String pass = args[1].trim(); String message = args[2].trim(); Twitter twitter = new Twitter(user,pass); try{ twitter.update(message); }catch(Exception e){ e.printStackTrace(); } } }
- Twitter4jをAS/400のIFSへ配置
- AS400TwitterjクラスをAS/400のIFSへ配置
- AS400Twitterjクラスを呼び出すCLを以下の様に作成
/*********************************************************************/ /* TWITTERJ : Twitter4j 実行 /usr/source/java */ /* 2009/07/31 WRITE BY ushiday */ /* */ /*********************************************************************/ /* 変数定義 */ /*********************************************************************/ PGM PARM(&USER &PASS &MSG) DCL VAR(&USER ) TYPE(*CHAR) LEN(20) /* ユーザー */ DCL VAR(&PASS ) TYPE(*CHAR) LEN(20) /* パスワード */ DCL VAR(&MSG ) TYPE(*CHAR) LEN(140) /* メッセージ */ DCL VAR(&NULL ) TYPE(*CHAR) LEN(1) /* NULL */ DCL VAR(&CCSID ) TYPE(*DEC) LEN(5 0) /* 元 CCSID */ DCL VAR(&CLASSPATH) TYPE(*CHAR) LEN(1024) /*JAVA CLASSPATH*/ RTVJOBA CCSID(&CCSID) CHGJOB CCSID(5035) /* クラスパスの設定 */ CHGVAR VAR(&CLASSPATH) + VALUE('.:/QIBM/UserData/Java400/lib/+ twitter4j-2.0.9.jar') /* カレントディレクトリの設定 */ CD DIR('/usr/source/java/AS400TwitterJ') /* JAVAコマンド実行 */ RUNJVA CLASS(AS400TwitterJ) PARM(&USER &PASS + &MSG) + CLASSPATH(&CLASSPATH) OUTPUT(*PRINT) CHGJOB CCSID(&CCSID) END: RETURN ENDPGM
このCLにAS/400のプログラムから、例えばRPGから3つの引数「ユーザー、パスワード、メッセージ」を渡せば、Twitterへ呟く事が出来ます。まぁ使う人はいないだろうけど5250の画面も作ってみました。
- 5250Twitter client
とりあえず、会社の夜間バッチが正常稼動しているか、無人でステータスでも呟いてみる事にしました。
AS/400もJavaが使える環境だから、当たり前に呟く事が出来ました。
groovyでもやってみました。こちらはgroovyスクリプトを「QP2SHELL」で呼び出してやってみたのですが、SBCSは問題ないけど、DBCSで文字化けを起こして駄目でした。「QP2SHELL」の引数が、DBCSには対応してないのかもしれません。
EclipseプラグインでGAE/Jを試す
「EclipseでJava版App Engineを始めるための基礎知識」という、自分にとってありがたい記事がありましたので、GAE/Jを早速試してみました。
内容は”dev_appserver.(cmd or sh) = 開発用 Web サーバー”や、”appcfg.(cmd or sh) = App Engine”がbinディレクトリに入ってます。
- プラグインの画面ボタン左から
- Google APP Engine for Java の新規プロジェクト
- GWTの新規プロジェクト
- 作成したWebアプリを公開
- アプリケーション用のサイトを作成
- アプリケーションの作成
- デフォルトで既に、動作するアプリケーションが出来ているので、そのまま使います。
- アプリケーションのデプロイ
- 「appengine-web.xml」に”application”と”version”を追加します。
-
- デプロイのボタンを押して、Gmailアドレスとパスワードを入力してアップロードします。
- アプリケーションの開始
- GAEの管理画面からデプロイしたアプリケーションの動作確認が出来ます。
Mac OSX 10.5 デフォのJDK
Mac OSX 10.5 デフォのJDKは、1.5みたいなんで、1.6にしておこうと思う。
Sun(もうOracleか?)に行くとそう言われるが、”最新JDKの導入は、Appleメニューのソフトウェア・アプデートから〜”行うみたい。
シェルでlocate javacで調べると、
/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/bin/javac
/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/man/javac.1
が出力される、
JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home
PATH=JAVA_HOME/bin:$PATH
MANPATH=JAVA_HOME/man:$MANPATH
を「~/.bashrc」に追加。