jsonplugin包与Struts2包版本匹配问题

java.lang.NoSuchMethodError: com.opensymphony.xwork2.ActionContext.get(Ljava/lang/String;)Ljava/lang/Object;”异常,

导致该异常的是jsonplugin的jar包与Struts2的jar包不匹配引起的。

jsonplugin-0.33.jar Struts 2 JSON Plugin 0.33 匹配 Struts 2.1.x Compatible

jsonplugin-0.32.jar Struts 2 JSON Plugin 0.32 匹配 Struts 2.0.x Compatible

 异常:java.lang.NoClassDefFoundError: com/opensymphony/xwork2/util/TextUtils

原因:jsonplugin-0.34.jar 配合 struts2-core-2.1.8.1.jar 使用的情况下报的异常,

但以前的项目中jsonplugin-0.34.jar 配合 struts2-core-2.1.6.jar 使用不会出现这样的异常

解决方法:去掉jsonplugin-0.34.jar,使用struts2-json-plugin-2.1.8.1.jar 和 json-lib-2.1.jar两个包 服务器没有异常,

后来在客户端跟踪到错误信息如下 java.lang.NoClassDefFoundError: org/apache/commons/beanutils/DynaBean缺少jar包造成 struts2.1.6+json用到的jar包总共如下

 json-lib2.1.jar

 json-lib2.1.jar

 json-plugin-0.33.jar

 ezmorph-1.0.3.jar

 commons-beanutils-1.7.0.jar

 

我的是2.0如图:

struts2-core-2.0.14.jar
json-lib-2.2.1-jdk15.jar
jsonplugin-0.32.jar

 

 

com.googlecode.jsonplugin.JSONExeption: java.lang.IllegalAccessException: Class com.googlecode.jsonplugin.JSONWriter can not access a member of class org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper with modifiers "public"
这个错误是action中的借口不能有get方法注释掉就行,反正spring注入,用set就可以

/*public UserService getUserService() {
  return userService;
 }*/

 public void setUserService(UserService userService) {
  this.userService = userService;
 }

你可能感兴趣的:(spring,json,struts,jar,Class,action)