GWT Developer Plugin - 対応していません　・このアプリには NPAPI プラグインが必要です

> 本稿を投稿して次の日くらいに Google Plugin for Eclipse の新しいバージョンのリリースがあったらしく、本件は対応され Chrome に GWT Develper Plugin は不要にななった。本稿はもはや意味なしだが、情報を追記して残しておく。
ストックしてくれた人ありがとう。

久々に Google App Engine (GAE) を試そうとして、GAE SDK を Eclipse に インストールした。
サンプルプロジェクトを実行し、指定の URL を Chrome で 開いたら、GWT のプラグインを入れろと言ってきて、言われた通り入れようとしたらインストールボタンが赤く「対応していません」になっていて、カーソルをあてるとタイトルのメッセージが表示され(´・ω・`)な気持ちになった。

![npapi.png](https://qiita-image-store.s3.amazonaws.com/0/21239/b92d6823-1bf1-2b50-cf1a-511eb66ca669.png)

GWT など使わないのでどーでもいいのだが、GAE 初心者の出鼻をくじくには十分な問題なので一応対策を調べ情報を残しておく。

ちなみに現象がでた環境はWindows8.1/Chrome。

NPAPI (Netscape Plugin API) はブラウザプラグイン用のAPI規格で、廃れた技術なので気にしない。（遠い目をしたアナタ！おっさん認定です）
NPAPI は廃止が決まっており、これを使うプラグインは去年あたりから次世代の PPAPI に移行が進んでいて、たとえばいつだか Youtube の調子が悪かったとしたらこの移行が絡んでいた可能性が高い。

GWT Developer plugin というのは Google Web Tools（GWT）での開発ツールで、デバッグ用の通信を行う。これが NPAPI を使っていて最後の締切に引っかかった。おそらく PPAPI への対応がなされることもないだろう。

というのも GWT は Super Dev Mode (SDM) という、新しい開発環境を用意しており、これはブラウザに特別なプラグインを必要としないからだ。

さて、上記をふまえ考えられる対応としては以下のとおり。

A. GWT を使わない
B. GWT Developer Plugin をなんとか入れる
C. Super Dev Mode に乗り換える


## A. GWT を使わない

そもそも GWT てなんじゃらほい？ GAE とやらがどんなもんか触ってみたかっただけなんだが？ という人は GWT 抜きのプロジェクトを作成するのが早い。

「Google」＞「Web アプリケーション・プロジェクト」のプロジェクト新規作成ダイアログで「Google SDKs」の「Google Web ツールキットを使用」(Use Google Web Toolkit) のチェックを外す。
デフォルトでこれが ON になっているのが問題で、OFF にすれば GWT は組み込まれず、GWT のサンプルコードも生成されないので、素のサーブレット環境としてすっきりとしたプロジェクトが始められる。

## B. GWT Developer Plugin をなんとか入れる

GWT を使っている開発者はイラッとしているだろう。
拡張インストールでの NPAPI チェックを回避する方法があればよい。

使っている OS が Windows 8 なら Chrome の互換モードを落とすことでインストール可能になる。

いったんすべての Chorme プロセスを落とす。
Chrome のショートカットアイコンを右クリックして「プロパティ」＞「互換性」＞「互換モード」で「Windows 7」を選択し適用する。

改めて Chrome を立ち上げ GWT Developer プラグインのインストール画面を開くと、ボタンが「＋無料」になってインストール可能になっている。

インストール完了後は、互換モードを元に戻しても問題なさそうだ。

Windows8 以外の環境で同様の問題は起こっているのかはよくわからないが、互換モードを落とすようなやり方がないとしてもプラグインを入れることは可能だ。

一つの方法として、GWT Developer Plugin の本体である CRX ファイルをどこからか入手し、 chrome://extensions/ にドラック&ドロップすれば難なくインストールできる。
ただし、入手したCRXが本物である確証が持てなければ、セキュリティ上の問題が払拭できないのでお勧めはできない。あくまで自己責任ということで。

無事インストールできたとしても、これがいつまで使えるのかは当然わからない。

今後 GWT 開発を継続するのなら Super Dev Mode への移行も検討したほうがいいだろう。

## C. Super Dev Mode に乗り換える

[Super Dev Mode](http://www.gwtproject.org/articles/superdevmode.html)（SDM）になるとブラウザ側に拡張プラグインのインストールが必要なくなる。

しかしこれはまだ Eclipse プラグインに統合されていないので、Eclipse プロジェクトの設定に多少の修正が必要になる。あるいは Maven からサーバを起動する。

ググるとやり方が出てくるがめんどくさそうだ。

* [eclipse plugin - Super Dev mode in GWT - Stack Overflow](
http://stackoverflow.com/questions/18330001/super-dev-mode-in-gwt)

下記ブログの情報によると GWT の近い将来のバージョン(2.7?)で、SDM が Eclipse プラグインに統合されるようなので、それを待つのも手だろう。

 * [Getting Started with GWT Super Dev Mode | Blog | Sencha](http://www.sencha.com/blog/getting-started-with-gwt-super-dev-mode)

### 【追記】　もうかよ、速いなおい

Eclipse での SDM 対応は思ったより速く実現した。
Google Plugin for Eclipse 3.8 で Super Dev Mode が実行できるようになった。同梱の App Engine SDK は 1.9.15に上がったが、GWTは2.6.0 のまま。
対応すべきは GWT ではなく Eclipse プラグインの方だっだのだ。

Eclipse の更新機能で Google Plugin for Eclipse をアップデートすると、プロジェクトの「実行」メニューの GWT 用 Web アプリケーションが２つに増え、「GWT Classic Dev Mode」と「GWT Super Dev Mode」が追加されているのがわかる。

![SDMJ.png](https://qiita-image-store.s3.amazonaws.com/0/21239/aab5ff39-e9cb-0707-b4c2-b6d92103bf28.png)

「GWT Classic Dev Mode」では従来の通り。

「GWT Super Dev Mode」のほうを実行すると、コンテナサーバとは別に codeserver というサーバが立ち上がり、ブラウザの JavaScript 経由で通信し、デバッグ情報をやり取りする。

指定の URL を開くとなにやらJava側のコンパイルで待たされるようになる。
Chrome の右下には再コンパイルのアイコンが表示される。

Chrome のデベロッパーツール画面で Java のソースを参照し、ブレークポイントを仕掛けることができる。

言葉で説明するよりも上記 Sencha さんブログの下の方にある動画を見たほうが速い。

おもしろい。
おもしろいが GWT で開発することは今後ありそうもない。
ここは深入りしないことにする。