Jersey 2.0相当于POJOMappingFeature

Fre*_*oth 34 java json web-services moxy jersey-2.0

我有一些使用Jersey <2.0的经验.现在我正在尝试构建一个war应用程序来提供JSON Webservice API.

我现在正在努力配置Moxy并且接缝比添加的更复杂

    <init-param>
        <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
        <param-value>true</param-value>
    </init-param>
Run Code Online (Sandbox Code Playgroud)

回到Jersey <2.0的web.xml.

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

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

任何人都可以给我一个提示吗?

Kal*_*m M 46

请使用以下依赖项,它将自动为您执行此操作.

 <dependency>
        <groupId>com.fasterxml.jackson.jaxrs</groupId>
        <artifactId>jackson-jaxrs-json-provider</artifactId>
        <version>2.2.3</version>
   </dependency>
Run Code Online (Sandbox Code Playgroud)


iba*_*bai 13

如果要在web.xml文件中定义它,则:

JACKSON:

<init-param>
  <param-name>jersey.config.server.provider.classnames</param-name>
  <param-value>org.glassfish.jersey.jackson.JacksonFeature</param-value>
</init-param>
Run Code Online (Sandbox Code Playgroud)

MOXY

<init-param>
  <param-name>jersey.config.server.provider.classnames</param-name>
  <param-value>org.glassfish.jersey.moxy.json.MoxyFeature</param-value>
</init-param>
Run Code Online (Sandbox Code Playgroud)

如果使用maven将以下依赖项添加到您的pom文件中

JACKSON

<dependency>
    <groupId>org.glassfish.jersey.media</groupId>
    <artifactId>jersey-media-json-jackson</artifactId>
    <version>your jersey version</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

MOXY

<dependency>
    <groupId>org.glassfish.jersey.media</groupId>
    <artifactId>jersey-media-moxy</artifactId>
    <version>your jersey version</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)


bdo*_*han 7

您可以通过JAX-RS 类配置类来将EclipseLink MOXy配置为JSON绑定提供程序.MOXyJsonProviderApplication

示例#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;
    }

}
Run Code Online (Sandbox Code Playgroud)

例#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;
    }

} 
Run Code Online (Sandbox Code Playgroud)

欲获得更多信息

  • 因此,无需编写代码就无法在2.0中启用json支持? (8认同)