java如何从响应对象获取myObject
我有一个资源,我想测试。为此,我想从javax中提取myObject。ws。rs.core。回答我该怎么做
资源如下所示:
@Post
@Path("/test")
public MyObjectClass myresource(){return myObject}
我的测试:
@Test
public void test(){
Response response = resources.getJersyTest()
.target("/test")
.request()
.post(javax.ws.rs.client.Entity.json(String.class));
assertThat...
}
# 1 楼答案
一般来说,从Rest资源返回自定义对象不是一个好主意。您可以重新考虑使用标准格式JSON或XML之一,并返回响应,而不是
MyObjectClass
。您还需要将请求或字符串(或两者)作为resource方法的参数,以处理您在请求中发布的内容例如:
当然,对于JSON,您的
MyObjectClass
必须为JSON添加注释。。。 然后在客户端的响应中,您将在response.getEntity
中使用myObject
的JSON表示,并且可以将其解组回MyObject类但是如果你仍然想返回你的自定义对象,你必须创建一个机制来封送/解封你的对象
检查这个答案RestEasy - Jax-rs - Sending custom Object in response body
从单元测试的其他人那里,你可以直接调用你的资源方法,然后直接转换结果