昨日のナニを検証してみる
書いてある通りにヤッてみたんですが、javax.* なパケジを strip な意味がよー分からん、ってコトで色々試してみます。
試したコトを順に列挙
- まず、tomcat なサーバにあるプロジェクトを削除
- eclipse にある www も削除
- jp.littlesoft.gwttest1.public にある ImageSearchClient.gwt.xml を開く
- sevlet ん中の path を /image に変更、上書き保存
- jp.littlesoft.gwttest1.client の ImageSearchClient.java を開く
- 直前エントリに倣って修正、上書き保存
- war を作成
- ImageSearchClient-compile.cmd を実行
- 作成された war なファイルとコンパイルした後に作成されたファイル達を転送
- /usr/share/tomcat4/webapps 配下に転送した war ファイルをコピィし、解凍
- GWTTest1 ディレクトリを作成し、その中にて解凍
- *-compile.cmd にて作成されたファイルをコピィ
- WEB-INF/web.xml を修正
- chown で属性を再帰的に tomcat4 が読めるように変更
- tomcat 再起動
あら、動いた。デフォな gwt-servlet.jar でもデプロイはできるみたい。javax.* パケジを、なソレは一体何だったのだろうか。(この辺は中身を見てないので結論付けるのは微妙だろうな)
がしかし、「検索」処理は動作していない。Exception なメセジを見るに、エントリポイントのコーディングが微妙かも。
HTTP Status 404 - /GWTTest1//GWTTest1/image
とかって出てるな。
何度かデプロイを繰り返してみる必要あり。
追記
エントリポイントなソレは以下のようにしてみた。(一部のみ)
ServiceDefTarget target = (ServiceDefTarget) searchService; string staticResponseURL = GWT.getModuleBaseURL(); staticResponseURL += "image"; target.setServiseEntryPoint(staticResponseURL);
ImageSearchServise.gwt.xml は以下。(コメント略)
<module> <ingerits name='com.google.gwt.user.User'/> <entry-point class='jp.littlesoft.gwttest1.client.ImageSearchClient'/> <servlet path='/image' class='jp.littlesoft.gwttest1.server.ImageSearchServiseImpl'/> </module>
で「検索」クリックしたら NG。ログ見れ、との事なので見てみると AccessControlException との事。
2006-12-05 10:40:20 Exception while dispatching incoming RPC call java.security.AccessControlException: access denied (java.lang.RuntimePermission accessDeclaredMembers)
げ。なんかどっかで見たコトあるなぁ。
とりあえず、アクセス制限解除してみる。/etc/tomcat4/policy.d/04webapps.policy に以下の行を追加。
// Allow for GWT permission java.lang.RuntimePermission "accessDeclaredMembers";
まだオチる。
だと。
やっぱ gwt-user.jar を使わねぇとナニ??
とゆコトでコピってみたのですが、NG。ムチャクチャ長いメセジと共にブラウザ使用不能状態に。仕方が無いので再度 gwt-servlet.jar を WEB-INF/lib にコピーしてリトライも SerializationException。(駄目だ、ループしてるぞ
で、google 先生にお伺いしてみたトコロ、以下の文書を発見。
Cannot make RPC call: SerializationException
なんか bug って字が見えるんですが ...
追記 2
まだまだ続く。どこまでも ...
それは良いとして上記のナニを試験してみる。順番に
- Servise Interface に以下を追加
String dummy(String dummy);
- Asunc Interface に以下を追加
void dummy(String dummy, AsyncCallback callback);
げ、改行したら勝手に追加されたぞ。なんか微妙。
- impl class に以下を追加
public String dummy(String dummy) { return dummy; }
で、war と complie.cmd なナニを転送、と ...
余談
どうも root でコピーして所有者変えるのを忘れてアセるなぁ。
続き
NG。SerializationException 再現。再度イチからヤッてみた方が良いのかなぁ。段々ワケワカになりつつある。