Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
誰も教えてくれなかった
XPagesのデバッグ方法
チームスタジオジャパン株式会社
加藤 満
このセッションでカバーする内容
アプリケーションエラーや動作が「?」のときにどう対処する
かを考える
対象
- SSJSの古典的なデバッグとエラー制御
- ログを取る
- SSJSデバッガー(9.0以降)
エラーページの表示
基本中の基本!
print() と _dump()
print() と _dump()
ともに変数に指定したオブジェクトをコンソールに表示するも
のだが何が違うのか?
print() と _dump()
print()は基本的にどんなオブジェクト型にも対応するが、その
オブジェクトの toString() がコールされる
- 例でみる jsonObject の [object Object] では役に立たな...
try / catch /finally
try {
}
catch(e) {
}
finally {
}
評価コード
エラー発生後のコード
エラーの有無にかかわらず実行する後処理コード
var iconPath = "";
try{
var doc =
viewEntry.getDocument(
);
if(doc.hasEmbedded()){
iconPath =
"/attachment.gif";
}
doc.rec...
Commons のログ機能を使ってみる
loggerクラスを使ってログ出力
- com.ibm.commons.log クラスを拡張して console.log に出力
• <データディレクトリー>¥IBM_TECHNICAL_SUPPORT...
まずは java コードから
Javaの設計としてこの以下のコード追加
- package 名はご自由に
SSJS
errorp() – エラー
warnp() – 警告
infop() – 情報
APIの詳細は
http://tinyurl.com/XPagesLogMgrAPI
SSJSデバッガー
SSJS デバッガー
Domino Designer 9.0 以降
Domino サーバー上でも Designer のHTTP からでも動作
notes.ini
JavaEnableDebug=1
JavaDebugOptions=tra...
Domino Designer でのデバッグ構成
失敗
成功
ブレークポイントの設定
ソースパネル上のSSJS コードの設定にブレークポイントを
ダブルクリック!!!
デバッグの開始
XPageをプリビューすると...
デバッグの操作
- ステップイン(F5)
- ステップオーバー(F6)
- ステップリターン(F7)
- 中断
- 再開(F8)
- 終了(Ctrl+F2)
- 「変数」タブで値を確認
• 実行時のそれぞれのステップでのスコープ変数の値を確認するには特に有効
• 値は確認するだけでなく、その場で変更することも可能
ブレークポイントに debugger ステート
メントを利用する
debugger ステートメント
目的
他の開発者とブレークポイントを共有する
注意点
Notes/Domino 9.0 以降で有効
- 8.5.x 以前のバージョンではエラーが発生
本番環境のコードではこのステートメントは削除しましょう!
「サーバーサイドJavaScriptの最初の行
で停止」オプション
すべてのSSJSの最初の行で停
止
- 挙動がおかしいアプリでどこが原
因がわからないときに有効
- もちろん途中で好きな場所にブ
レークポイントを設定してもよい
条件付きブレークポイントの設定
設定したブレークポイントを右クリック
- ブレークポイント・プロパティ
- 条件の有効化
- 条件式
ご視聴ありがとうございました
ご質問?ご批判?
XPagesDay2015 - 誰も教えてくれなかったデバッグ方法
XPagesDay2015 - 誰も教えてくれなかったデバッグ方法
XPagesDay2015 - 誰も教えてくれなかったデバッグ方法
Upcoming SlideShare
Loading in …5
×

XPagesDay2015 - 誰も教えてくれなかったデバッグ方法

3,200 views

Published on

XPagesDay 2015 で行ったセッションのスライドです。

Published in: Software
  • Follow the link, new dating source: ❶❶❶ http://bit.ly/39mQKz3 ❶❶❶
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Dating for everyone is here: ❶❶❶ http://bit.ly/39mQKz3 ❶❶❶
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

XPagesDay2015 - 誰も教えてくれなかったデバッグ方法

  1. 1. 誰も教えてくれなかった XPagesのデバッグ方法 チームスタジオジャパン株式会社 加藤 満
  2. 2. このセッションでカバーする内容 アプリケーションエラーや動作が「?」のときにどう対処する かを考える 対象 - SSJSの古典的なデバッグとエラー制御 - ログを取る - SSJSデバッガー(9.0以降)
  3. 3. エラーページの表示 基本中の基本!
  4. 4. print() と _dump()
  5. 5. print() と _dump() ともに変数に指定したオブジェクトをコンソールに表示するも のだが何が違うのか?
  6. 6. print() と _dump() print()は基本的にどんなオブジェクト型にも対応するが、その オブジェクトの toString() がコールされる - 例でみる jsonObject の [object Object] では役に立たない _dump() は複数要素をもつオブジェクト(JSONや配列、 HashMap、Vector値などなど)に有効 - サマリー情報だけでなく、それぞれのエントリーのすべての詳細デー タを書き出してくれる
  7. 7. try / catch /finally
  8. 8. try { } catch(e) { } finally { } 評価コード エラー発生後のコード エラーの有無にかかわらず実行する後処理コード
  9. 9. var iconPath = ""; try{ var doc = viewEntry.getDocument( ); if(doc.hasEmbedded()){ iconPath = "/attachment.gif"; } doc.recycle(); }catch(e){ } finally { return iconPath; } var iconPath = ""; var doc = viewEntry.getDocument(); if(doc.hasEmbedded()){ iconPath = "/attachment.gif"; } doc.recycle(); return iconPath;
  10. 10. Commons のログ機能を使ってみる loggerクラスを使ってログ出力 - com.ibm.commons.log クラスを拡張して console.log に出力 • <データディレクトリー>¥IBM_TECHNICAL_SUPPORT 内 - SSJS から利用可能 - notes.ini に HTTP_OSGI_ENABLE_CONSOLE_LOGGING=1 (要サーバー再起動) - プログラマブル {0} {1} {n} に変数を代入可能
  11. 11. まずは java コードから Javaの設計としてこの以下のコード追加 - package 名はご自由に
  12. 12. SSJS
  13. 13. errorp() – エラー warnp() – 警告 infop() – 情報 APIの詳細は http://tinyurl.com/XPagesLogMgrAPI
  14. 14. SSJSデバッガー
  15. 15. SSJS デバッガー Domino Designer 9.0 以降 Domino サーバー上でも Designer のHTTP からでも動作 notes.ini JavaEnableDebug=1 JavaDebugOptions=transport=dt_socket,server=y,suspend=n, address=8000 JavascriptEnableDebug=1 - ※1 HTTPの再起動が必要 - ※2 JavascriptEnableDebugは大文字小文字を正確に 本番環境のサーバーでは決して行わないでください
  16. 16. Domino Designer でのデバッグ構成
  17. 17. 失敗 成功
  18. 18. ブレークポイントの設定 ソースパネル上のSSJS コードの設定にブレークポイントを ダブルクリック!!!
  19. 19. デバッグの開始 XPageをプリビューすると...
  20. 20. デバッグの操作 - ステップイン(F5) - ステップオーバー(F6) - ステップリターン(F7) - 中断 - 再開(F8) - 終了(Ctrl+F2)
  21. 21. - 「変数」タブで値を確認 • 実行時のそれぞれのステップでのスコープ変数の値を確認するには特に有効 • 値は確認するだけでなく、その場で変更することも可能
  22. 22. ブレークポイントに debugger ステート メントを利用する
  23. 23. debugger ステートメント 目的 他の開発者とブレークポイントを共有する 注意点 Notes/Domino 9.0 以降で有効 - 8.5.x 以前のバージョンではエラーが発生 本番環境のコードではこのステートメントは削除しましょう!
  24. 24. 「サーバーサイドJavaScriptの最初の行 で停止」オプション すべてのSSJSの最初の行で停 止 - 挙動がおかしいアプリでどこが原 因がわからないときに有効 - もちろん途中で好きな場所にブ レークポイントを設定してもよい
  25. 25. 条件付きブレークポイントの設定 設定したブレークポイントを右クリック - ブレークポイント・プロパティ - 条件の有効化 - 条件式
  26. 26. ご視聴ありがとうございました ご質問?ご批判?

×