一尘不染

Jersey 2.0等效于POJOMappingFeature

json

我有一些使用Jersey <2.0的经验。现在,我正在尝试构建一个战争应用程序以提供JSON Webservice API。

我现在花了大量时间尝试配置Moxy,而且接缝比添加的要复杂得多

    <init-param>
        <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
        <param-value>true</param-value>
    </init-param>

回到Jersey <2.0中的web.xml。

是否有可能只是说“请添加json支持”?

目前,我在服务器上没有任何日志条目的情况下,收到了很多内部服务器错误错误,只是觉得“我必须做完全错误的事情,这不可能那么难”

谁能给我一个提示?


阅读 316

收藏
2020-07-27

共1个答案

一尘不染

您可以通过JAX-RS 类配置 EclipseLink
MOXy

,将其配置为JSON绑定提供程序。MOXyJsonProvider``Application

例子1

package org.example;

import java.util.*;
import javax.ws.rs.core.Application;
import org.eclipse.persistence.jaxb.rs.MOXyJsonProvider;

public class CustomerApplication  extends Application {

    @Override
    public Set<Class<?>> getClasses() {
        HashSet<Class<?>> set = new HashSet<Class<?>>(2);
        set.add(MOXyJsonProvider.class);
        set.add(CustomerService.class);
        return set;
    }

}

范例#2

package org.example;

import java.util.*;
import javax.ws.rs.core.Application;
import org.eclipse.persistence.jaxb.rs.MOXyJsonProvider;

public class CustomerApplication  extends Application {

    @Override
    public Set<Class<?>> getClasses() {
        HashSet<Class<?>> set = new HashSet<Class<?>>(1);
        set.add(ExampleService.class);
        return set;
    }

    @Override
    public Set<Object> getSingletons() {
        MOXyJsonProvider moxyJsonProvider = new MOXyJsonProvider();

        moxyJsonProvider.setAttributePrefix("@");
        moxyJsonProvider.setFormattedOutput(true);
        moxyJsonProvider.setIncludeRoot(true);
        moxyJsonProvider.setMarshalEmptyCollections(false);
        moxyJsonProvider.setValueWrapper("$");

        Map<String, String> namespacePrefixMapper = new HashMap<String, String>(1);
        namespacePrefixMapper.put("http://www.example.org/customer", "cust");
        moxyJsonProvider.setNamespacePrefixMapper(namespacePrefixMapper);
        moxyJsonProvider.setNamespaceSeparator(':');

        HashSet<Object> set = new HashSet<Object>(1);
        set.add(moxyJsonProvider);
        return set;
    }

}

想要查询更多的信息

2020-07-27