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>