2018年10月6日ここでは、GWTのクライアント側をChrome上でデバッグする方法について説明する。Eclipseを使用することを前提としている。ちなみに、サーバ側はEclipseのデバッグモードでごく普通にデバッグができるのだが、クライアント側は、当然ながらEclipse側では対応できない。ブラウザの機能を使用してデバッグすることになる。目次サンプルプログラムデベロッパーツールを表示するコンソールソースレベルデバッグ例外発生時のスタックトレースサンプルプログラムサンプルとしては単純なものだ。Pluginを導入すると、GWTサンプルの作成機能がついてくるが、これを使用するだけである。Oxygen)でGWTサンプルを動かすまでに記述してある。これを動作させると、ブラウザ側では以下のような画面が表示されるだけだ。デベロッパーツールを表示するChrome上で表示させたら、デベロッパーツールを開く。これは、Ctrl+Shift+Iを押すか、画面を右クリックして「検証」を選択する。すると、こんな画面になる。コンソールまずはコンソールを見てみる。ここには、キャッチされていない例外が表示されるほか、GWTクライアントからのメッセージも表示される。言っても、System.out.println(“”)では表示されない。コンソールに出力するには、GWT.logを使う必要があるのだ。試しに、ボタンをクリックしたら、「clicked!!!」と表示させるには、以下のようにする。(sampleパッケージのSampleというクラスを作ったという前提で)sample.client.Sampleの以下の部分を変更する。}ブラウザをリロードして、Sendボタンをクリックしてみると、以下の表示になる。ソースレベルデバッグ次にソースレベルデバッグを行ってみる。意外なことなのだが、Chrome上ではクライアントがJavaScriptで動作しているにも関わらず、Javaのソースレベルデバッグができるのである。以下のようにSourcesタブに移動し、左側のsample下を開いていき、Sample.javaを表示させる。右側にはJavaのソース・ファイルが表示される。先に、変更したように「GWT.log(“clicked!!!”)」のあることがわかる。このGWT.logのところにブレークポイントを設定してみよう。breakpointを選択する。背景が青色になり、この行にブレークポイントが設定されたことを示す。この状態で、Sendボタンをクリックしてみると、以下のようにブレークポイントで停止する。続行やステップ実行が、左上や下のボタンで選択できる。このようにして、GWT.logによるトレース出力とソースレベルでのブレークポイントでの停止やステップ実行ができる。例外発生時のスタックトレース上記で一通りのデバッグはできるのだが、しかし、思いがけない例外発生時には少々苦労する。Sendボタンをクリックしたときに、わざと例外を発生されるため、次のようにコードを変更してみる。この場合はNullPointerExceptionが発生する。}すると、コンソールには次のような表示がされる。通常のJavaのスタックトレースとは、全く異なるスタックトレースなのである。この例外はSample.javaで起こっているにも関わらず、そのことが全くわからない。※ちなみに、クライアント側でNullPointerException等が発生すると、「com.google.gwt.event.shared.UmbrellaException」という表示がなされる。NullPointerExceptionという名前も、どこにも現れない。missing?に議論がある。これを参考にして、onModuleLoad()を以下のようにしてみる。onModuleLoad()の先頭に追加。この状態で例外を発生させてみると、以下の表示になる。先ほどとは異なり、Javaソース・ファイル名と行番号が表示されている。ysugimura関連記事GWTでブラウザへの印刷指示を行うGWTにおいてブラウザへの印刷指示を行いたい。...GWTでWebSocketsを使うGWTアプリ上でWebSocketsを使う。コメントをキャンセルメールアドレスが公開されることはありません。*ウェブサイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。上に表示された文字を入力してください。