我有一些使用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支持”?
目前,我在服务器上没有任何日志条目的情况下,收到了很多内部服务器错误错误,只是觉得“我必须做完全错误的事情,这不可能那么难”
谁能给我一个提示?
您可以通过JAX-RS 类配置 EclipseLink MOXy ,将其配置为JSON绑定提供程序。MOXyJsonProvider``Application
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; } }
想要查询更多的信息