[Seasar-user:19493] 【Teeda】 Kumu.Ajax.executeTeedaAjaxでの4000byte以上のデータが渡せない

高橋 万物 [E-MAIL ADDRESS DELETED]
2010年 3月 15日 (月) 14:17:31 JST


高橋と申します。

現在teeda + s2DAOで開発を行っております。

Excelのように、画面上にグリッドを設け、直接複数件のデータを編集可能に
するアプリを作成しております。
グリッドでの直接編集を可能にする為、Java ScriptライブラリのDojoのgridを
用いております。

複数件一括で登録する為、dojo.gridからの複数件データをJSON化し、
KumuのexcecuteTeedaAjaxを用いて引数で渡し、
登録させようとしております。


1件のbyte数が非常に大きく、JSON化した状態で約2000byteになります。


1件のデータが登録できるところまでは実装できたのですが、
2件以上の一括登録になると、以下のエラーが出力されてしまいます。
AjaxError! status[400] message[]


試しに、1byte文字列をfor文で繰り返し変数に格納し検証したところ、
3000byteの文字列はServletに渡せましたが、
4000byteの文字列は上記エラーが発生し渡せませんでした。


4000byte以上のデータを渡す方法はないでしょうか?


文字列を圧縮するか、1件毎にKumu出の呼び出しを繰り返し実行するか、
で考えています。

文字列を圧縮する方法は、perlでしたら「rawdeflate.js」「rawinflate.js」
というJava Scriptでできるのですが、
Javaで解凍するライブラリがなさそうです。
実際にこのJava Scriptで圧縮した2件以上のデータをServlet側に渡せる
ところまでは確認しました。


1件のデータ毎にKumuでServletメソッドを繰り返し呼び出し登録する
方法は、for文内で1件目のServletメソッドを呼び出した後、
2件目のKumu呼び出しまで到達しているのですが、Servletメソッドが
呼び出されません。

また、JSON文字列内で無駄なダブルコーテーションを除去するなど
軽量化もしましたが、解決には至りませんでした。


もしかすると、現在のexecuteTeedaAjaxの指定がGETでの送信となっていて、
POSTにすれば解決したりするのでしょうか?



executeTeedaAjaxの指定は以下の通りです。

function xxx_xxxPage_ajaxDoInsert(response){

}
Kumu.Ajax.executeTeedaAjax(xxx_xxxPage_ajaxDoInsert, [jsonStr],
Kumu.Ajax.RESPONSE_TYPE_TEXT);


よろしくお願い致します。
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://ml.seasar.org/archives/seasar-user/attachments/20100315/e3ec9b96/attachment.html>


Seasar-user メーリングリストの案内