wicket-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sven Meier <s...@meiers.net>
Subject Re: Wicket rest and retrofit rest client
Date Fri, 16 May 2014 16:33:14 GMT
Hi,

Retrofit callbacks are invoked asynchronously. Once #success() is 
called, the Wicket response is probably written already.

You can't/shouldn't do anything related to Wicket in a non-request thread.

Regards
Sven

On 05/07/2014 07:49 PM, Noven wrote:
> Hi all,
>
> I am experimenting with retrofit (http://square.github.io/retrofit/) rest client and
have issue that I can't fix.
>
> I have a form that on submit will call the wicket-rest service.
>
> form.add(new AjaxButton("submit") {
>              @Override
>              protected void onSubmit(final AjaxRequestTarget target, Form<?> form)
{
>                  getWicketApplication().getPersonService().createPerson((PersonPojo)
form.getModelObject(), new Callback<PersonPojo>() {
>
>                      @Override
>                      public void success(PersonPojo t, Response rspns) {
>                          info("Success creating person");
>                          
>                          target.add(feedback);                 // error from here
>                      }
>
>                      @Override
>                      public void failure(RetrofitError re) {
>                          error("Error creating person");
>                          target.add(feedback);
>                      }
>                  });
>              }
>          });
>
>
> I am able to submit the form successfully..  but unable to call the target.add(feedback);
>
> Here is the logs :
>
> INFO  - PersonForm                 - Success creating person
> Exception in thread "Retrofit-Idle" org.apache.wicket.WicketRuntimeException: No RequestCycle
is currently set!
> at org.apache.wicket.Component.getRequest(Component.java:1818)
> at org.apache.wicket.markup.html.WebPage.dirty(WebPage.java:318)
> at org.apache.wicket.Page.dirty(Page.java:248)
> at org.apache.wicket.Page.componentStateChanging(Page.java:937)
> at org.apache.wicket.Component.addStateChange(Component.java:3542)
> at org.apache.wicket.Component.info(Component.java:2008)
> at com.restclient.form.PersonForm$1$1.success(PersonForm.java:62)
> at com.restclient.form.PersonForm$1$1.success(PersonForm.java:57)
> at retrofit.CallbackRunnable$1.run(CallbackRunnable.java:45)
> at retrofit.Utils$SynchronousExecutor.execute(Utils.java:114)
> at retrofit.CallbackRunnable.run(CallbackRunnable.java:43)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> at retrofit.Platform$Base$2$1.run(Platform.java:94)
> at java.lang.Thread.run(Thread.java:744)
>
> I guess there's something I missed here, The RequestCycle. I just don't know what to
do next.
>
> Please help.
>
> Regards,
> Noven


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Mime
View raw message