記錄、分享

          struts2 當spring遇到json插件時的異常 及解決(引用)

          struts2 當spring遇到json插件時的異常 及解決




          1 我的Action代碼
          package common.regist.action;
          import com.opensymphony.xwork2.ActionSupport;
          import common.regist.Interface.IRegistService;
          import domain.User;
          public class RegistAction extends ActionSupport {
          private IRegistService service;

          private String responseText;

          private String username = "";

          private User user;

          public IRegistService getService() {
            return service;
          }
          public void setService(IRegistService service) {
            this.service = service;
          }

          public User getUser() {
            return user;
          }

          public void setUser(User user) {
            this.user = user;
          }

          public String validateUserName() {
            if(service.validateUser(username).size()==0)
            {
             this.setResponseText("true");
             return ActionSupport.SUCCESS;
            }
            this.setResponseText("false");
            return ActionSupport.SUCCESS;
          }


          public String execute() throws Exception {
            service.regist(user);
            return super.execute();
          }

          public String getResponseText() {
            return responseText;
          }

          public void setResponseText(String responseText) {
            this.responseText = responseText;
          }

          public String getUsername() {
            return username;
          }
          public void setUsername(String username) {
            this.username = username;
          }

          }

          配置文件里:
          <package name="ajax" extends="json-default" namespace="/login">
            <action name="validateUserName" class="registAction" method="validateUserName">
             <result type="json"></result>
            </action>
            </package>

          發生的異常
          org.apache.catalina.core.StandardWrapperValve invoke
          嚴重: Servlet.service() for servlet default threw exception
          java.sql.SQLException: Positioned Update not supported.
          低調的貓(624767717) 15:04:17
          at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:910)
          at com.mysql.jdbc.ResultSet.getCursorName(ResultSet.java:1917)
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
          at java.lang.reflect.Method.invoke(Method.java:597)
          at com.googlecode.jsonplugin.JSONWriter.bean(JSONWriter.java:220)
          at com.googlecode.jsonplugin.JSONWriter.process(JSONWriter.java:152)
          at com.googlecode.jsonplugin.JSONWriter.value(JSONWriter.java:120)
          at com.googlecode.jsonplugin.JSONWriter.add(JSONWriter.java:302)
          at com.googlecode.jsonplugin.JSONWriter.bean(JSONWriter.java:221)
          at com.googlecode.jsonplugin.JSONWriter.process(JSONWriter.java:152)
          at com.googlecode.jsonplugin.JSONWriter.value(JSONWriter.java:120)
          at com.googlecode.jsonplugin.JSONWriter.add(JSONWriter.java:302)
          at com.googlecode.jsonplugin.JSONWriter.bean(JSONWriter.java:221)
          at com.googlecode.jsonplugin.JSONWriter.process(JSONWriter.java:152)
          at com.googlecode.jsonplugin.JSONWriter.value(JSONWriter.java:120)
          at com.googlecode.jsonplugin.JSONWriter.add(JSONWriter.java:302)
          at com.googlecode.jsonplugin.JSONWriter.bean(JSONWriter.java:221)
          at com.googlecode.jsonplugin.JSONWriter.process(JSONWriter.java:152)
          at com.googlecode.jsonplugin.JSONWriter.value(JSONWriter.java:120)
          at com.googlecode.jsonplugin.JSONWriter.add(JSONWriter.java:302)
          at com.googlecode.jsonplugin.JSONWriter.bean(JSONWriter.java:221)
          at com.googlecode.jsonplugin.JSONWriter.process(JSONWriter.java:152)
          at com.googlecode.jsonplugin.JSONWriter.value(JSONWriter.java:120)
          at com.googlecode.jsonplugin.JSONWriter.add(JSONWriter.java:302)
          at com.googlecode.jsonplugin.JSONWriter.bean(JSONWriter.java:221)
          at com.googlecode.jsonplugin.JSONWriter.process(JSONWriter.java:152)
          at com.googlecode.jsonplugin.JSONWriter.value(JSONWriter.java:120)
          at com.googlecode.jsonplugin.JSONWriter.add(JSONWriter.java:302)
          at com.googlecode.jsonplugin.JSONWriter.bean(JSONWriter.java:221)
          at com.googlecode.jsonplugin.JSONWriter.process(JSONWriter.java:152)
          at com.googlecode.jsonplugin.JSONWriter.value(JSONWriter.java:120)
          at com.googlecode.jsonplugin.JSONWriter.add(JSONWriter.java:302)
          at com.googlecode.jsonplugin.JSONWriter.bean(JSONWriter.java:221)
          at com.googlecode.jsonplugin.JSONWriter.process(JSONWriter.java:152)
          at com.googlecode.jsonplugin.JSONWriter.value(JSONWriter.java:120)
          at com.googlecode.jsonplugin.JSONWriter.add(JSONWriter.java:302)
          at com.googlecode.jsonplugin.JSONWriter.bean(JSONWriter.java:221)
          at com.googlecode.jsonplugin.JSONWriter.process(JSONWriter.java:152)
          at com.googlecode.jsonplugin.JSONWriter.value(JSONWriter.java:120)
          at com.googlecode.jsonplugin.JSONWriter.write(JSONWriter.java:88)
          at com.googlecode.jsonplugin.JSONUtil.serialize(JSONUtil.java:90)
          at com.googlecode.jsonplugin.JSONResult.execute(JSONResult.java:119)


          分析---------------------------------------------------------------------------------------
          在我的Action中一共有4個properties,其中有個bean是service,而且是在spring framework中已經實例化了的,問題就出在它身上了。于是在struts-config中加入該bean的exclude,再測試,成功了!
          發送action的request后,服務返回JSON數據。

          解決-----------------------------------------------------------------------------------------
          <action name="validateUserName" class="registAction" method="validateUserName">
             <result type="json">
               <param name="excludeProperties">      //序列化屬性中排除 service
                               service
             </param>

          </result>
            </action>
            </package>

          posted on 2011-06-09 15:58 張生 閱讀(1015) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2011年6月>
          2930311234
          567891011
          12131415161718
          19202122232425
          262728293012
          3456789

          導航

          統計

          常用鏈接

          留言簿

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 四会市| 灵丘县| 辽阳市| 孝义市| 皋兰县| 怀宁县| 陆河县| 哈巴河县| 望奎县| 定边县| 文昌市| 隆回县| 安达市| 阿尔山市| 祁连县| 宜都市| 门源| 美姑县| 明光市| 米泉市| 固始县| 融水| 樟树市| 小金县| 吉林省| 桐柏县| 察雅县| 侯马市| 射阳县| 英德市| 江口县| 油尖旺区| 镶黄旗| 哈尔滨市| 浦北县| 贵州省| 上蔡县| 宝应县| 涞水县| 富蕴县| 松潘县|