Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Restlet响应类型_Java_Web Services_Rest_Spring Mvc_Restlet - Fatal编程技术网

Java Restlet响应类型

Java Restlet响应类型,java,web-services,rest,spring-mvc,restlet,Java,Web Services,Rest,Spring Mvc,Restlet,如何以所需格式返回Restlet响应? 我使用的方法是: @Get ("json") public Address sendResponse(){ Address add = getAddress(); return add; } 现在,我必须显式地将java对象转换为json字符串,作为对浏览器的响应。Restlet框架本身不能处理它吗 SpringMVC的Restful实现可以做到这一点。我也在Restlet中寻找类似的实现。尝试将响应类型设置为application/js

如何以所需格式返回Restlet响应? 我使用的方法是:

@Get ("json")
public Address sendResponse(){
    Address add = getAddress();
    return add;
}
现在,我必须显式地将java对象转换为json字符串,作为对浏览器的响应。Restlet框架本身不能处理它吗


SpringMVC的Restful实现可以做到这一点。我也在Restlet中寻找类似的实现。

尝试将响应类型设置为
application/json
,而不仅仅是
json
。通常,您需要指定正确的MIME类型。正如您所说,如果您正确设置MIME类型,其他框架将自动进行转换。

事实上,使用Restlet有两种方法:

  • 使用JSON表示的显式表示。如果使用org.json中的对象,则使用JSONRepresentation;如果需要json/对象映射,则使用JacksonRepresentation。您可以在下面找到一个示例:

    @Get ("json")
    public Representation sendResponse(){
        Address add = getAddress();
        return new JacksonRepresentation<Address>(address);
    }
    
    @Get(“json”)
    公众代表回应(){
    Address add=getAddress();
    返回新的JacksonRepresentation(地址);
    }
    
  • 隐式的使用转换器。在本例中,是您提供的代码。类路径中必须有一个适当的转换器,如org.restlet.ext.jackson扩展提供的转换器。它将检测到需要返回JSON内容,并隐式地将Address对象转换为JSON内容

作为提示,GET注释中指定的json媒体告诉Restlet在使用accept头为conneg(内容协商)定义application/json时使用关联的方法来处理请求

希望对你有帮助。
Thierry

您希望的格式是什么?现在,您告诉它返回json,因此它将返回json。你想让它返回另一个媒体类型吗?如果是,什么?@javamonkey79谢谢你的关心。我会努力的。我想要的格式是json,但在浏览器上没有。我必须将其转换为json:string才能在浏览器上获得它。我在服务器控制台上收到以下消息:org.restlet.service.ConverterService toRepresentation警告:找不到此对象的转换器:restlet。Address@396fe0f4That这是不对的。事实上,API文档中只提到了oppsosite。请参阅“注意,这不是完整的MIME类型值,只是MetadataService中声明的扩展名。”