Hello,
does it stop working only for PUT requests? In this case, this is due to an
issue with GAE (cf
http://wiki.restlet.org/docs_2.1/13-restlet/21-restlet/318-restlet/303-restlet.html
).
Resltet 2.1 proposes a fix for that :
"GAE doesn't support HTTP chunked encoding, therefore serialized object
can't be sent (via POST or PUT) to a GAE server. In Restlet Framework
version 2.1 M4 we have a workaround available that buffers the HTTP entity
to prevent chunk encoding. To use it, call the
ClientResource#setRequestEntityBuffering(boolean) method with a "true"
value. Note that this workaround isn't required for the GWT edition."
Best regards,
Thierry Boileau
Hi,
>
> I had some working application
> Android/GWT client and GAE server. After upgrading my android version on
> my smartphone the android client stopped working however GWT still working
> until now.
> I used last production version(GWT/GAE/Restlet) that was distributed more
> than 2 years ago.
>
> Today i would like to fix the problem in Android client, but i get 400 Bad
> Request.
> I went over many documentation, forums, discussions, migration from
> restlet 1 to 2 with many possible solution, but nothing didn't work for me.
>
> Please find below my code and i will appreciate if you can point me to the
> resolution or can i try to make it working. Let me know if you need more
> information of my app. Thank you!
>
> Current versions:
> Restlet: 2.0.15
> GAE: 1.7.3
> GWT: 2.4
>
>
> ************************************************************************************
> ANDROID CLIENT:
>
> public interface NoteResource
> {
> @Get
> public NoteList retrieve(String userID);
>
> @Put
> public void store(SafeNote note);
>
> @Delete
> public void remove(String noteID);
> }
>
> Some code from the main class where i do invocation of the method
> Engine.getInstance().getRegisteredClients().clear();
> Engine.getInstance().getRegisteredClients().add(new
> org.restlet.ext.net.HttpClientHelper(null));
> ClientResource clientResource = new ClientResource("
> http://someapp.appspot/note/get/" + userID);
> noteResource = clientResource.wrap(NoteResource.class);
> noteList = noteResource.retrieve(signedUser);
>
>
> ******************************************************************************************************************************
>
> GAE SERVER
>
> public class NoteApplication extends Application
> {
> private static final Logger logger =
> Logger.getLogger(NoteApplication.class.getName());
>
> /**
> * When launched as a standalone application.
> *
> * @param args
> * @throws Exception
> */
> public static void main(String[] args) throws Exception {
> Component component = new Component();
> component.getClients().add(Protocol.FILE);
> component.getServers().add(Protocol.HTTP, 8080);
> component.getDefaultHost().attach(new NoteApplication());
> component.start();
> }
>
> @Override
> public synchronized Restlet createInboundRoot() {
> Router router = new Router(getContext());
> getConnectorService().getClientProtocols().add(Protocol.FILE);
> // Serve the files generated by the GWT compilation step.
> File warDir = new File("");
> if (!"war".equals(warDir.getName())) {
> warDir = new File(warDir, "war/");
> }
>
> Directory dir = new Directory(getContext(),
> LocalReference.createFileReference(warDir));
> router.attachDefault(dir);
> router.attach("/note", NoteResourceImpl.class);
> router.attach("/note/login", NoteResourceImpl.class);
> TemplateRoute routeGet = router.attach("/note/get/{userID}",
> NoteResourceImpl.class);
> TemplateRoute routeDelete = router.attach("/note/delete/{NoteID}",
> NoteResourceImpl.class);
> Map<String, Variable> routeVariables =
> routeGet.getTemplate().getVariables();
> routeVariables.put("userID", new
> Variable(Variable.TYPE_URI_QUERY_PARAM));
> routeVariables = routeDelete.getTemplate().getVariables();
> routeVariables.put("safeNoteID", new
> Variable(Variable.TYPE_URI_QUERY_PARAM));
> return router;
>
> ------------------------------------------------------
>
> http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=3027743
>
------------------------------------------------------
http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=3028520