Hi Group,

I am new to Wicket and I am attempting to read some JSON data posted from a 
wicket page.

The following exception occurs with Wicket 1.4.18 and Jetty 6.1.x when 
attempting to read the servlet request - BufferedReader br = hsr.getReader().

Sep 28, 2011 8:50:48 AM org.apache.wicket.RequestCycle logRuntimeException
SEVERE: STREAMED
java.lang.IllegalStateException: STREAMED
        at org.mortbay.jetty.Request.getReader(Request.java:935)
        at tunechipsapp.web.pages.LoginPage$2.onRequest(LoginPage.java:64)
        at 
org.apache.wicket.request.target.component.listener.BehaviorRequestTarget.processEvents(BehaviorRequestTarget.java:157)
        at 
org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92)
        at 
org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1252)
        at org.apache.wicket.RequestCycle.step(RequestCycle.java:1331)
        at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1438)
        at org.apache.wicket.RequestCycle.request(RequestCycle.java:546)
        at 
org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:486)
        at 
org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:319)
        at 
com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:163)
        at 
com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)

The code was source from 
https://cwiki.apache.org/WICKET/how-to-handle-jqueryajax-json-request-.html

   AbstractAjaxBehavior ajaxSaveBehaviour = new AbstractAjaxBehavior() {
            private static final long serialVersionUID = 1L;

            @SuppressWarnings("unchecked")
            public void onRequest() {
                log.info("***** onRequest *****");

                //get parameters
                final RequestCycle requestCycle = RequestCycle.get();

                WebRequest wr = (WebRequest) requestCycle.getRequest();

                HttpServletRequest hsr = wr.getHttpServletRequest();

                try {
                    BufferedReader br = hsr.getReader();  <<< Exception

                    String jsonString = br.readLine();
                    if ((jsonString == null) || jsonString.isEmpty()) {
                        log.error(" no json found");
                    } else {
                        log.info(" json  is :" + jsonString);
                    }


                } catch (IOException ex) {
                    log.error(ex.toString());
                }

                // json string to retir to the jQuery onSuccess function
                String data = "{}";

                log.info("returning json :" + data);
                IRequestTarget t = new StringRequestTarget("application/json", 
"UTF-8", data);
                getRequestCycle().setRequestTarget(t);
                //requestCycle.setRequestTarget(new 
StringRequestTarget("application/json", "utf-8", data));
            }
        };
        add(ajaxSaveBehaviour);
 
I have read some posts about this in different forms (eg. pushing content), but 
I haven't found a solution at this point.

Cheers in advance
Tate 

Reply via email to