【发布时间】:2014-03-04 15:41:51
【问题描述】:
我有一个 HTML 表单,它使用 textarea 字段提交 XML:
<form action="rest" method="POST">
<textarea name="xml" rows="10" cols="30" ></textarea>
<input type="submit" value="Invoke REST">
</form>
现在我想在 REST Web 服务中使用 XML(我使用的是 Java EE 7 和 WildFly CR1)。 我试过使用:
@POST
@Consumes(MediaType.APPLICATION_XML)
public Response createItemFromXML(@FormParam("xml") Customer c) {
ejb.addToList(c);
return Response.ok("Created customer ").build();
}
这会导致 java.lang.RuntimeException:无法在公共 javax.ws.rs.core.Response 上找到为 javax.ws.rs.FormParam("xml") 采用 String 参数或 valueOf() 或 fromString() 方法的构造函数com.sample.SimpleRESTService.createItemFromXML(com.sample.Customer) for basetype: com.sample.SimpleProperty
我必须使用 Stream 作为表单参数(并手动转换为 XML)还是有更简单的方法?
编辑: 我也尝试过:
@POST
@Consumes(MediaType.APPLICATION_XML)
public Response createPropertyFromXml( Customer c) {
ejb.addToList(c);
return Response.ok("Created customer " + n).build();
}
但是现在的错误是:javax.ws.rs.NotSupportedException:无法使用内容类型 似乎它不能自动从表单字段转换为 XML.... 谢谢
【问题讨论】:
标签: xml web-services rest jakarta-ee jboss7.x