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>