读书人

JSONObject json = new JSONObject()异

发布时间: 2012-03-09 16:54:57 作者: rapoo

JSONObject json = new JSONObject()错误

Java code
public class LoginAction extends ActionSupport {    private String username;    private String password;    private UserService userService;     private javax.servlet.http.HttpServletResponse response;        // 获得HttpServletResponse对象        public void setServletResponse(HttpServletResponse response){        this.response = response;    }       public UserService getUserService() {        return userService;    }    public void setUserService(UserService userService) {        this.userService = userService;    }    public String getUsername() {        return username;    }    public void setUsername(String username) {        this.username = username;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }    public String execute()throws JSONException, IOException,Exception {        Users user=userService.find(username, password);        if(user!=null){            Map session =(Map)ActionContext.getContext().getSession();            session.put("user",user);                        JSONObject json = new JSONObject();//这里错了,怎么解决?            json.put("loginOK", true);            json.put("success", true);            response.getWriter().print(json);            return null;                    }else            return "fail";    }}
抛出错误:2010-5-24 17:11:44 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet default threw exception
java.lang.NoClassDefFoundError: org/json/JSONException
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
at java.lang.Class.getDeclaredMethods(Class.java:1791)
at com.zeroturnaround.javarebel.lR.makeClassDeclaredMethodCache(JRebel:229)
at com.zeroturnaround.javarebel.lR.getClassDeclaredMethodCache(JRebel:158)
at com.zeroturnaround.javarebel.lR.getDeclaredMethods(JRebel:456)
at java.lang.Class.getDeclaredMethods(Class.java:1791)
at ognl.OgnlRuntime.getDeclaredMethods(OgnlRuntime.java:1719)
at ognl.OgnlRuntime.getSetMethod(OgnlRuntime.java:1814)
at ognl.OgnlRuntime.hasSetMethod(OgnlRuntime.java:1836)
at ognl.OgnlRuntime.hasSetProperty(OgnlRuntime.java:1854)
at com.opensymphony.xwork2.ognl.accessor.CompoundRootAccessor.setProperty(CompoundRootAccessor.java:64)
at ognl.OgnlRuntime.setProperty(OgnlRuntime.java:2225)
at ognl.ASTProperty.setValueBody(ASTProperty.java:127)
at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:220)
at ognl.SimpleNode.setValue(SimpleNode.java:301)
at ognl.Ognl.setValue(Ognl.java:737)
at com.opensymphony.xwork2.ognl.OgnlUtil.setValue(OgnlUtil.java:198)
at com.opensymphony.xwork2.ognl.OgnlValueStack.setValue(OgnlValueStack.java:161)
at com.opensymphony.xwork2.ognl.OgnlValueStack.setValue(OgnlValueStack.java:149)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.setParameters(ParametersInterceptor.java:276)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:187)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:179)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)


at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:130)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:165)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:179)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:488)
at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:852)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:584)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1508)
at java.lang.Thread.run(Thread.java:619)
http://topic.csdn.net/u/20100524/13/d179141a-cf13-4420-afe0-f3d4d99c9131.html?seed=1516920397&r=65683263



[解决办法]
org/json/JSONException


这个类的jar包没找到啊
[解决办法]
是不是运行环境没有放json的jar包?

你在web-inf/lib下放个jar包试下
[解决办法]
Map param = new HashMap();
param.put("loginOK", true);
param.put("success", true);
JSONObject json = JSONObject.fromObject(param);
[解决办法]

探讨

在你的服务端程序(servlet或jsp)中再次调用了response的getOutputStream()。这个输出流已经到结尾了,所以你再次调用的话就会出现错误。


好好检查一下你的代码吧

[解决办法]
你报错的stacktrace好像和你认为错误的地方不一致
[解决办法]
Java code
基于json-lib.jar包Json实例程序1.从头或者从零开始,创建一个JSONObject(Creating a JSONObject from scratch)实例1:    JSONObject jsonObject = new JSONObject();   jsonObject.element("name", "周星星");   jsonObject.element("sex", "male");   jsonObject.element("age", 18);   jsonObject.element("job", "student");   System.out.println(jsonObject.get("name"));// 周星星   System.out.println(jsonObject.get("job"));// student   System.out.println(jsonObject.getString("sex"));// male   System.out.println(jsonObject.getInt("age"));// 18实例2:   JSONObject jsonObject = new JSONObject().element("string", "JSON").element("integer", "1").element("double", "2.0").element("boolean", "true");   assertEquals("JSON", jsonObject.getString("string"));   assertEquals(1, jsonObject.getInt("integer"));   assertEquals(2.0d, jsonObject.getDouble("double"), 0d);   assertTrue(jsonObject.getBoolean("boolean"));   注:这是对实例1的一个简化版  2.使用一个JSON格式化字符串来创建一个JSONObject(Creating a JSONObject from a JSON formatted string)  实例1:   String json = "{name:\"周星星\",sex:\"male\",age:18,job:\"student\"}";   JSONObject jsonObject = JSONObject.fromObject(json);   //或者使用 JSONObject jsonObject = (JSONObject) JSONSerializer.toJSON(json);   System.out.println(jsonObject.get("name"));// 周星星   System.out.println(jsonObject.get("job"));// student   System.out.println(jsonObject.getString("sex"));// male   System.out.println(jsonObject.getInt("age"));// 18实例2:   String str = "{'string':'JSON', 'integer': 1, 'double': 2.0, 'boolean': true}";   JSONObject jsonObject = (JSONObject) JSONSerializer.toJSON(str);   assertEquals("JSON", jsonObject.getString("string"));   assertEquals(1, jsonObject.getInt("integer"));   assertEquals(2.0d, jsonObject.getDouble("double"), 0d);   assertTrue(jsonObject.getBoolean("boolean"));  3.使用一个Map来创建一个JSONObject(Creating a JSONObject from a Map)实例1:   Map map = new HashMap();      map.put( "string", "JSON" );      map.put( "integer", "1" );      map.put( "double", "2.0" );      map.put( "boolean", "true" );      JSONObject jsonObject = (JSONObject) JSONSerializer.toJSON( map );      assertEquals( "JSON", jsonObject.getString("string") );            assertEquals( 1, jsonObject.getInt("integer") );            assertEquals( 2.0d, jsonObject.getDouble("double"), 0d );            assertTrue( jsonObject.getBoolean("boolean") ); 4.使用一个JavaBean来创建一个JSONObject(Creating a JSONObject from a JavaBean)实例1:public class Mybean {   private String string;   private int integer;   private double dooble;   private boolean bool;   // getters & setters}Mybean bean = new Mybean();bean.setString("JSON");bean.setInteger(1);bean.setDooble(2.0d);bean.setBool(true);JSONObject jsonObject = (JSONObject) JSONSerializer.toJSON(bean);assertEquals("JSON", jsonObject.getString("string"));assertEquals(1, jsonObject.getInt("integer"));assertEquals(2.0d, jsonObject.getDouble("dooble"), 0d);assertTrue(jsonObject.getBoolean("bool")); 


[解决办法]
java.lang.NoClassDefFoundError: org/json/JSONException
找不到类嘛. LZ做Struts2的时候是否已经添加Struts2-json-plugin.jar?
没有加是肯定报错的

读书人网 >Java Web开发

热点推荐