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