struts.xml内容如下:
<package name="front" namespace="/" extends="json-default">
<action name="user" class="userAction">
<result type="json"></result>
</action>
</package>=======================================================Action:UserAction如下:
@Component("userAction")
@Scope("prototype")
public class UserAction extends ActionSupport {
private UserService userService;
private User user; public User getUser() {
return user;
} public void setUser(User user) {
this.user = user;
} @Resource(name="userService")
public void setUserService(UserService userService) {
this.userService = userService;
}
public String find() {
user = userService.findById(1);
return SUCCESS;
}
}=======================================================实体类User和Group如下:
@Entity
public class User implements java.io.Serializable {
private Integer id;
private String username;
private String password;
private Group group;
//...省略get和set
}
@Entity
public class Group implements java.io.Serializable {
private Integer id;
private String name;
private Set<User> users = new HashSet<User>(0); //...省略get和set
}=======================================================当访问action中的find方法时抛异常如下:
Struts has detected an unhandled exception:
Messages:
1. Class org.apache.struts2.json.JSONWriter can not access a member of class org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper with modifiers "public"=======================================================网上有说action中不能出现带接口的get方法.但我的action中只有一个userService属性是接口,而且只设置了set方法.并没有设置get方法.
也有说是因为两个类级联的缘故.我试了下,将User中的group属性去掉后,运行正常,前台能获得Json数据,但加上后就不行了.
这个是json插件的bug吗?还是要做一些其他配置?大家有谁碰到过此问题吗?
<package name="front" namespace="/" extends="json-default">
<action name="user" class="userAction">
<result type="json"></result>
</action>
</package>=======================================================Action:UserAction如下:
@Component("userAction")
@Scope("prototype")
public class UserAction extends ActionSupport {
private UserService userService;
private User user; public User getUser() {
return user;
} public void setUser(User user) {
this.user = user;
} @Resource(name="userService")
public void setUserService(UserService userService) {
this.userService = userService;
}
public String find() {
user = userService.findById(1);
return SUCCESS;
}
}=======================================================实体类User和Group如下:
@Entity
public class User implements java.io.Serializable {
private Integer id;
private String username;
private String password;
private Group group;
//...省略get和set
}
@Entity
public class Group implements java.io.Serializable {
private Integer id;
private String name;
private Set<User> users = new HashSet<User>(0); //...省略get和set
}=======================================================当访问action中的find方法时抛异常如下:
Struts has detected an unhandled exception:
Messages:
1. Class org.apache.struts2.json.JSONWriter can not access a member of class org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper with modifiers "public"=======================================================网上有说action中不能出现带接口的get方法.但我的action中只有一个userService属性是接口,而且只设置了set方法.并没有设置get方法.
也有说是因为两个类级联的缘故.我试了下,将User中的group属性去掉后,运行正常,前台能获得Json数据,但加上后就不行了.
这个是json插件的bug吗?还是要做一些其他配置?大家有谁碰到过此问题吗?
解决方案 »
- forEach 同时遍历两个集合求解
- 运行ejb报的一个错误
- Java语言入门到精通
- java 内存划分,只分成栈、堆吗?如static变量放在堆的哪个部分..
- 連接sql2000所產生問題
- 各位老手进来给新手指指路,你们的成功让大家来分想(进者有分送)!!!!!!
- 各位看过struts1.1自带例子的请进来看看!(问题解决就结贴)
- 在sessionbean中如何修改entitybean的数据,给个思路!
- 如何学习J2EE及 EJB
- 为什么我用jbuilder5.0时出现光标与字符不对应情况,这到底是怎么回事?
- Java多线程-线程池ExecutorService.shutdown什么时候执行
- java类中 一位数组的初始化问题
由于hibernate为实体类加上了hibernateLazyInitializer属性
此属性无法由反射访问得到
只要在配置中把hibernateLazyInitializer属性除外就行了
<result type="json">
<param name="excludeProperties">.*hibernateLazyInitializer</param>
</result>
虽然我还是不懂在“配置中把hibernateLazyInitializer属性除外就行了”这句话的意思....
百度去!