こちらのHP「XPages.JP」でブログが開始されました。
自分を含めIBMチャンピオン for ICS の皆さん運営に参加しているこちらの「XPages.JP」。
これからXPagesに関する様々なブログが投稿されることを期待していてください。
さて、第一弾は「IBM Watson Work Services SDK」を使ってみよう、と題してXPagesからWatson Work Services Java SDKを利用してIBM Watson Workspaceへメッセージを投稿する方法をご紹介します。
IBM Watson Workspaceでスペースを作ろう
もしまだIBM Watson Workspaceを利用したことないという場合、無料で使えますのでhttps://watsonwork.ibm.com/へアクセスしてください。ログインにはIBM Idを利用します。
ログイン出来たらまずはスペースを作成します。スペースとは他のチャットアプリのグループチャットの部屋に相当します。
まずは誰も誘わずテストように自分のスペースだけを作ります。
Watson Work Services Java SDKを利用したXPagesアプリケーションの作成
Watson Work Services Java SDKとはOpenNTFのPaul S Withers氏とChristian Guedemann氏がメインとなって進められているプロジェクトでお二人とも有名なIBMチャンピオンで数多くのプロジェクトでICSへ貢献されています。
このWatson Work Services Java SDKとはWatson Workspaceを外部から利用できるようにした開発ツールキットです。Githubにソースがすべて公開されていますので自分でコンパイルして使うことができます。
Github Watson Work Services Java SDK
こちらのプロジェクトはMavenによりプロジェクト管理されており、依存関係を一気に解決してくれます。とはいえ、Javaに馴染みがない方にとってはSDKをコンパイルしてJarファイルを作成するのはかなり敷居が高いとおもいます。
そこでこちらのブログにWatson Work Services Java SDKのJarファイルと依存関係のあるJarをすべて取り込んだサンプルNSFを添付しました。ブログ最下部に添付してありますのでダウンロードして使ってください。
IBM Watson Work Servicesでアプリケーションを登録しよう
サンプルアプリケーションを使ってWatson Workspaceにメッセージを投稿してみたいとおもいます。そこでまず外部からWatson Workspaceを利用できるようにアプリケーションの登録を行います。
https://developer.watsonwork.ibm.com/
に行き右上の「Your Apps」をクリックします。
次にアプリケーション名と説明を自由に入力しCreateボタンをクリックします。
するとApp IDとApp Secretが付与されますのでコピーして保管しておきます。
Watson Workspaceでアプリを有効化
IBM Watson Work Servicesでアプリの登録が完了すれば、IBM Watson Workspaceに戻り、先ほど登録したアプリをスペースで活用できるように有効化してやります。
最後に、後に使うspace IDもApp IDとApp Secretと共にコピーしておいてください。
サンプルアプリをテストしてみよう。
こちらの動画のようにうまくいけばXPageデモアプリからWatson Workspaceへ投稿ができることが確認できます。
コピーしておいた、App IDとApp Secret、space IDを使い実際に動くか試してみてください。
今回のサンプルプログラムで HTTP JVM: org.opencode4workspace.WWException: java.security.AccessControlException: Access denied ("java.lang.reflect.ReflectPermission" "suppressAccessChecks") と表示されてしまう場合、以下の対応を行ってください。
「ドミノプログラムフォルダ/jvm/lib/security」にあるjava.policyを修正する必要があります。
1.permission java.lang.RuntimePermission "stopThread";
を
permission java.lang.RuntimePermission "accessDeclaredMembers";
にします。
2.permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
の行を追加します。
御代さん、情報ありがとうございます。
まとめ
いかがでしたでしょうか? XPagesサンプルアプリケーションはできるだけシンプルに構成していますので、皆さんのアプリケーションにもすぐに実装できるようになると思います。
なお、2017年2月にサンフランシスコで開催されたIBM Connect 2017ハッカソンで日本人チームが作成した「IoT Application on XPages」プロジェクトでも同じ技術を利用しています。詳しくはこちらも併せて読んでみてください。
記事: Kazunori Tatsuki@Ktrick - 2017/06/21