記錄、分享

          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 張生 閱讀(1019) 評論(0)  編輯  收藏


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


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

          導航

          統計

          常用鏈接

          留言簿

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 通城县| 图木舒克市| 景宁| 石城县| 梁平县| 新兴县| 潜山县| 原平市| 彭阳县| 青州市| 渭源县| 杭锦旗| 三门县| 阿克苏市| 诸城市| 阳西县| 洛南县| 手游| 开原市| 文登市| 海南省| 宁乡县| 大荔县| 凯里市| 招远市| 射阳县| 正定县| 噶尔县| 齐河县| 清苑县| 改则县| 岢岚县| 万源市| 锡林郭勒盟| 西藏| 古丈县| 视频| 资源县| 平凉市| 绥化市| 新邵县|