Resteasy配置不带web.xml的JacksonJaxbJsonProvider提供程序

时间:2016-01-19 13:36:51

标签: java jaxb jackson resteasy

如何在resteasy中访问和配置objectmapper?

我知道类似的问题已被多次询问和回答。 例如:Accessing Jackson Object Mapper in RestEasyhttp://wiki.fasterxml.com/JacksonFAQJaxRs

但是我的应用程序只是一个jse应用程序,它不包含web.xml文件。我如何使用自己的提供者/修改对象映射器。

1 个答案:

答案 0 :(得分:1)

您可以使用JAXRS Application执行此操作并覆盖 getSingletons 。您可以在容器外执行此操作。不需要web.xml。

import javax.ws.rs.core.Application;

@ApplicationPath("/rest")
public class ResourceConfiguration extends Application {

    @Override
    public Set<Class<?>> getClasses() {
        Set<Class<?>> resources = new java.util.HashSet<>();
        resources.add(//Your Class decorated with @Path
        return resources;
    }

    @Override
    public Set<Object> getSingletons() {
        Set<Object> s = new HashSet<Object>();

        JacksonJaxbJsonProvider jaxbProvider = new JacksonJaxbJsonProvider();
        jaxbProvider.setMapper(mapper);

        s.add(jaxbProvider);
        return s;
    }
}