Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.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 当我为JerseyTest注册JacksonFeature时,我可以使用对Jackson ObjectMapper的引用吗?_Java_Jackson_Jersey_Jersey Test Framework - Fatal编程技术网

Java 当我为JerseyTest注册JacksonFeature时,我可以使用对Jackson ObjectMapper的引用吗?

Java 当我为JerseyTest注册JacksonFeature时,我可以使用对Jackson ObjectMapper的引用吗?,java,jackson,jersey,jersey-test-framework,Java,Jackson,Jersey,Jersey Test Framework,当我使用Jersey测试框架测试rest服务时,是否有可能在测试类中重用Jackson ObjectMapper引用 我在测试类扩展的抽象类中注册了JacksonFeature public abstract class AbstractRestIntegrationTest extends JerseyTest { @Override protected Application configure() { ResourceConfig resourceCon

当我使用Jersey测试框架测试rest服务时,是否有可能在测试类中重用Jackson ObjectMapper引用

我在测试类扩展的抽象类中注册了JacksonFeature

public abstract class AbstractRestIntegrationTest extends JerseyTest {

    @Override
    protected Application configure() {

        ResourceConfig resourceConfig = new ResourceConfig(getResourceClass());
        resourceConfig.register(JacksonFeature.class);
        resourceConfig.register(MultiPartFeature.class);
        return resourceConfig;
    }
}
编辑

在我的测试类中,我调用rest服务,它返回给我json。然后我想通过jackson解析这个json,并检查它是否包含对象。我的问题是,当我注册JacksonFeature时,是否可以在Jersey的测试方法中重用ObjectMapper

public class ManagedElementIntegrationTest extends AbstractRestIntegrationTest {

       @Override
    protected Class<?> getResourceClass() {
        return ManagedElementRestService.class;
    }

    @Test
    public void testGetManagedElementById() throws IOException {
        IManagedElementService managedElementService = getBeanOfClass(IManagedElementService.class);

        ManagedElement me = prepareManagedElementObject();

        try {
            when(managedElementService.getUpdatedApplication(anyString())).thenReturn(me);
        } catch (ManagedElementNotFoundException e) {
            fail("Exception not expected: " + e);
        }

        String response = target("me/app").request().accept(MediaType.APPLICATION_JSON).get(String.class);
        ObjectMapper mapper = new ObjectMapper();
        JsonNode actualObj = mapper.readTree(response);
        assertNotNull(actualObj);
        assertNotNull(actualObj.get("mapPosition"));
        assertNull(actualObj.get("alarms"));

        // code continues below.
    }
}
公共类ManagedElementIntegrationTest扩展了AbstractRestIntegrationTest{
@凌驾
受保护的类getResourceClass(){
返回ManagedElementRestService.class;
}
@试验
public void testGetManagedElementById()引发IOException{
IManagedElementService managedElementService=getBeanOfClass(IManagedElementService.class);
ManagedElement me=prepareManagedElementObject();
试一试{
当(managedElementService.getUpdatedApplication(anyString())。然后返回(me);
}捕获(ManagedElementNotFounde异常){
失败(“不应出现异常:+e”);
}
String response=target(“me/app”).request().accept(MediaType.APPLICATION_JSON).get(String.class);
ObjectMapper mapper=新的ObjectMapper();
JsonNode-actualObj=mapper.readTree(响应);
assertNotNull(ActualLobj);
assertNotNull(ActualLobj.get(“mapPosition”);
assertNull(actualObj.get(“报警”));
//代码如下。
}
}

您想在哪里使用它?我编辑了我的问题。现在更清楚了吗?您不需要使用ObjectMapper。您只需要使用
response.readEntity(JsonNode.class)
谢谢,它正在工作。您想在哪里使用它?我编辑了我的问题。现在更清楚了吗?您不需要使用ObjectMapper。您只需要使用
response.readEntity(JsonNode.class)
谢谢,它正在工作。