struts2.1.6+jquery+json中出现的问题

  最近在学习struts2+jquery,在网上看到jquery+json+struts2感觉很牛,就自己弄个demo试试
结果一试就郁闷了,打开strurs2.1.6的lib包发现没有json-plugin×.jar,以为2.1.6和其它的版本不一样了,不管,直接将json-lib2.1.jar导入,运行报错:
There is no Action mapped for action name json. - [unknown location]
at com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:177)
at org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:61)
说是找不到映射,估计是没有加载struts.xml,看来还是需要json-plugin×.jar,木有办法,去网上找了半天,是个json-plugin-0.3.jar,重启后测试还是出错,不过错误不一样了:
java.lang.NoSuchMethodError: com.opensymphony.xwork2.ActionContext.get(Ljava/lang/Object;)Ljava/lang/Object;
at com.googlecode.jsonplugin.JSONResult.execute(JSONResult.java:153)
at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:361)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:265)
at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:163)
告诉我没有匹配的方法,没辙了,网上搜索发现是版本不对,于是找了个最新的json-plugin-0.33.jar替换掉重启就不报错了

以为就此ok了,后来在代码中写到
JSONArray json = JSONArray.fromObject(tests);
出现了转换后不走下面的代码,服务器也没有异常,后来在客户端跟踪到错误信息如下
(不知道为什么服务器没有异常输出。。)
java.lang.reflect.InvocationTargetException
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
........

org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:102)
root cause
java.lang.NoClassDefFoundError: org/apache/commons/beanutils/Dyn
aBean
net.sf.json.JSONArray._processValue(JSONArray.java:2259)
net.sf.json.JSONArray.processValue(JSONArray.java:2325)
net.sf.json.JSONArray.addValue(JSONArray.java:2312)
net.sf.json.JSONArray._fromCollection(JSONArray.java:841)
net.sf.json.JSONArray.fromObject(JSONArray.java:137)
net.sf.json.JSONArray.fromObject(JSONArray.java:120) com.jidi.jsonActions.TestAction.findTest(TestAction.java:34)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)



把java.lang.NoClassDefFoundError: org/apache/commons/beanutils/Dyn
aBean这个异常在网上一搜,发现还缺少两个jar包造成的错误,增加了jar包后错误解决
至此,struts2.1.6+json用到的jar包总共如下

json-lib2.1.jar
json-plugin-0.33.jar
ezmorph-1.0.3.jar
commons-beanutils-1.7.0.jar

你可能感兴趣的:(java,apache,jquery,.net,json)