1

ボタンクリックでStruts2アクションクラスに送信されるjspフォームがあります。アクション クラスから、制御はサービス (java) クラスと DAO (Java iBatis) クラスに流れます。DAO クラスは、oracle pl/sql プロシージャを呼び出します。

問題:

Action/Service/DAO & PL/SQL プロシージャのログ ステートメントを確認すると、1 回のボタン クリックで 2/3 回呼び出されていることがわかります。実行回数は非常にランダムですが、1 回ではありません (ステージング サーバーにデプロイされたコードのみ)。

不思議なことに、この機能は、コードが開発および実稼働サーバー (Websphere 7.1) にデプロイされている場合に正常に機能します (1 回だけ呼び出されます)。ステージング サーバーにデプロイされたときとまったく同じコード (EAR) が、この複数送信エラーに直面しています。

さまざまなブラウザー (IE 8 & IE 9) から試しましたが、この問題は、ステージング サーバーにデプロイされたアプリケーションにアクセスしようとしたときにのみ発生します。

当社のすべての開発、ステージング、本番 Websphere サーバーは、同じバージョンとパッチ レベルです。

送信に使用する JavaScript コードを次に示します。

 $(document).ready(function() {
                        mask();
                        var config = "${returnedCString}";

                        var f = "${flagS}";

                        if (f == "1"){
                            $.post('<%=request.getContextPath()%>/applyComp'
                                    ,function(data){
                                        unmask();

                                         $("#impactForm").attr('action','<%=request.getContextPath()%>/CompareForm');
                                         $("#impactForm").submit();     

                                    }

                             );
                }
}

問題は、次の Struts Action への POST が複数回発生していることです。

$.post('<%=request.getContextPath()%>/applyComp'
4

1 に答える 1