为什么Restlet on GAE表示Component为NULL

时间:2016-06-22 18:59:15

标签: java google-app-engine restlet

在对Restlet资源发出的每个请求中,我都会在Google App Engine日志中看到以下日志

21:38:50.059 javax.servlet.ServletContext log: ExampleAPIs: [Restlet] ServerServlet: component class is null
21:38:51.568 javax.servlet.ServletContext log: ExampleAPIs: [Restlet] Attaching application: com.example.api.ExampleAPIConfig@68ec99 to URI: /example/v1

为什么说Component是null? 我同意我没有定义组件而是使用ServerResources并将它们映射到Application类中的路由器。 但这就是按照Restlet GAE Edition文档完成的。

布线路线的应用类

public Example extends Application {
    @Override
    public Restlet createInboundRoot() {
        router = new Router(getContext());
        CorsService corsService = new CorsService();         
        corsService.setAllowedOrigins( new HashSet<String>(Arrays.asList("http://example.com")));
        corsService.setAllowedCredentials(true);
        getServices().add(corsService);

         router.attach("/xyz", XYZ.class);
    }
}

处理并返回JSON表示的服务器资源

public class XYZ extends ServerResource {

    private static final Logger logger = Logger.getLogger("API:Xyz");

    @Get(":json")
    public Representation handleGetRequest() {
         ..
         return new JsonRepresentation("{\"code\": 4008, \"description\": \"Something blah something\"}");
    }
}

我做错了什么?

1 个答案:

答案 0 :(得分:0)

您是否按照文档(链接下方)中的说明配置了servlet配置文件。 我认为servlet不是一个类。

https://restlet.com/technical-resources/restlet-framework/guide/2.3/editions/gae

更新

好的,如果你更深入的文档: https://restlet.com/technical-resources/restlet-framework/javadocs/2.0/jee/ext/org/restlet/ext/servlet/ServerServlet.html
https://restlet.com/technical-resources/restlet-framework/javadocs/2.0/jee/api/org/restlet/Component.html 您可以看到该组件是可选的但可能很有用,但可能在GAE实现中它默认没有。