【问题标题】:Consume XML in Java with Jersey使用 Jersey 使用 Java 中的 XML
【发布时间】:2013-12-04 16:57:01
【问题描述】:

我已经构建了一个生成对象的 XML 代码的 Web 应用程序。令我惊讶的是,生成的 xml 完全正确,并且是我想要的格式。但是,我现在正在创建一个使用相同格式的 XML 并将其转回对象的方法。如何测试它是否有效?

我尝试在 chrome 中使用 REST 扩展,该扩展发布与我的其他方法生成的完全相同的 XML,但我收到错误消息:“服务器拒绝此请求,因为请求实体的格式不受所请求的支持请求方法的资源。”我也尝试在我的代码中放置断点并以这种方式进行调试,但我的断点甚至从未到达。

@GET
@Produces(MediaType.TEXT_XML)
public week_program getXml() {
   week_program weekProgram = new week_program();            
   return weekProgram;
}

@POST    
@Consumes(MediaType.TEXT_XML)
public Response PostXml(week_program weekProgram) {
    System.out.println(weekProgram);
    return Response.status(Status.OK).entity(weekProgram).build();        
}

我该如何修复它,或者如果它确实有效,甚至可以正确测试它?

【问题讨论】:

  • chrome 中的 REST 扩展是否将“Content-Type”标头设置为“text/xml”?

标签: java xml jersey


【解决方案1】:

我建议使用 json 而不是 XML 和 Gson from Google

因为 json 输出通常小于 XML(无脂肪)。

对象转 JSON

 DataObject obj = new DataObject();
 Gson gson = new Gson();
 String json_string = gson.toJson(obj);

JSON 到对象

DataObject obj = gson.fromJson(json_string, DataObject.class);

这里有一个教程。 http://www.mkyong.com/java/how-do-convert-java-object-to-from-json-format-gson-api/

【讨论】:

  • 感谢您的建议。我很想使用 JSON,但不幸的是,我对必须能够生成和使用的格式有明确的限制。所以不幸的是我只有 XML...
猜你喜欢
  • 1970-01-01
  • 2012-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-19
  • 2013-10-04
  • 2011-04-23
  • 2012-06-26
相关资源
最近更新 更多