I am creating a webserver on my Android device, and everything seems to be working fine except for the fact Jackson is not converting my objects to JSON. When I make a successfull (200) HTTP request from the browser on my Android device I am getting no JSON data in the network tab (Looking at the response in Google Chrome). I have registered the Jackson Converter as the documents state, and as what previous StackOverflow questions have covered. This does not seem to work, and I'm not getting any error. Any idea what I'm doing wrong? I hope this is enough information for you geniuses here, otherwise let me know what else you guys need.
Note I also tried GSONConverter
Edit: I've noticed that the entity inside the response is always null
WebServer.java
package com.android.restlettest;
import org.restlet.Component;
import org.restlet.data.Protocol;
public class WebServer {
Component component;
WebServer() {
component = new Component();
component.getServers().add(Protocol.HTTP, 9001);
component.getDefaultHost().attach("", new MyApplication());
}
void start() {
try {
System.out.println("Starting the WebServer");
component.start();
} catch(Exception e) {
System.out.println("Exception caught: " + e);
}
}
void stop() {
}
}
MyApplication.java
package com.android.restlettest;
import org.restlet.Application;
import org.restlet.Restlet;
import org.restlet.routing.Router;
import org.restlet.engine.Engine;
import org.restlet.ext.gson.GsonConverter;
import org.restlet.ext.jackson.JacksonConverter;
public class MyApplication extends Application {
MyApplication() {
super();
Engine.getInstance().getRegisteredConverters().add(new JacksonConverter());
//Engine.getInstance().getRegisteredConverters().add(new GsonConverter());
}
@Override
public synchronized Restlet createInboundRoot() {
Router router = new Router(getContext());
router.attach("/", IndexResource.class);
router.attach("/report/log", LogServerResource.class);
return router;
}
}
LogServerResource.java
public class LogServerResource extends ServerResource implements ILogResource {
@Get("json")
public Log retrieve() {
Log[] list = new Log[2];
Log log1 = new Log("test.log", "alksdjf32984u23jfsdv", 0);
list[0] = log1;
return list[0];
//return "{\"resource\": \"log\"}";
}
}
Log.java
package com.android.restlettest;
import java.io.Serializable;
public class Log implements Serializable {
private static final long serialVersionUID = 1L;
public String data;
public String name;
public int id;
public Log() {
}
public Log(final String name, final String data, final int id) {
super();
this.name = name;
this.data = data;
this.id = id;
}
}