1
我正在尝试使用Jersey RS为POJO返回JSON。这是而不是一个servlet,并且没有servlet容器。泽西岛正在从Netty(不是捷蒂)内设置。我可以让Jersey返回APPLICATION_XML,但APPLICATION_JSON在同一个资源上抛出一个异常,说没有发现我的域类的Message Body writer。我在pom.xml中包含了jersey-json和jackson-jaxrs模块。Jersey应用程序无法返回简单POJO的JSON表示
这里的ResourceConfig是如何被设置:
Map<String, Object> props = new HashMap<String, Object>();
props.put(PackagesResourceConfig.PROPERTY_PACKAGES, RESOURCES_PACKAGE);
props.put(PROPERTY_BASE_URI, "http://localhost:9000/");
props.put(JSONConfiguration.FEATURE_POJO_MAPPING, true);
ContainerFactory.createContainer(JerseyHandler.class, new PackagesResourceConfig(props));
其中JerseyHandler是我的Netty Handler类。 资源是非常简单的:
@Path("/test")
public class TestResource {
@GET
@Produces(MediaType.APPLICATION_JSON)
public TestData get() {
return new TestData();
}
TESTDATA是最简单的模型类:
@XmlRootElement
public class TestData {
private String firstName;
private String lastName;
public TestData() {}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
这里的尝试访问 “/测试” 时除外:
SEVERE: A message body writer for Java class com.xyz.models.TestData, and Java type class com.xyz.models.TestData, and MIME media type application/json was not found
我曾尝试包括来自here的Context类,但仍然没有运气。
我无法想象从Jersey返回JSON可能很难。互联网上的所有例子都假设你使用的是一个servlet容器中的Jersey,但我不是!感谢任何投入。
mvn依赖关系:tree显示jackson-core和jackson-mapper-asl模块被jersey-json拉入。任何其他想法? – 2012-03-28 20:23:04