如何在JaxRs中获取xml消息

时间:2011-11-05 15:07:45

标签: xml jax-rs

我有我的钩子

@POST
@Path("add")
@Produces("text/html")
@Consumes("application/xml")
public String addCustomer(SiebelMessage siebMsg) {
  // TODO: Log the XML message here
  return siebMsg.getAccount().get(0).getHomePage(); // works
  }
}

我想在本地文件系统中记录实际的XML消息,如何获取访问权限。

3 个答案:

答案 0 :(得分:0)

如果你正在使用球衣,你可以使用LoggingFilter球衣提供(或者从中获得灵感来实现你做类似的过滤器),如果你不想依赖于特定于实现的API,那你就是'我必须使用JAXB为SiebelMessage写出XML。

答案 1 :(得分:0)

在CXF中,你需要掌握MesageContext

http://svn.apache.org/repos/asf/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/MessageContext.java

它有一个getHttpServletRequest()方法。

是CXF prorietrary的方式
((BindingProvider)proxy).getRequestContext()

但您可以使用@Context注释

http://cxf.apache.org/docs/jax-rs-basics.html#JAX-RSBasics-Contextannotations

答案 2 :(得分:0)

multipart / form-data是诀窍,如下所示

    @POST
@Path("addCustomer")
@Produces("multipart/form-data")
@Consumes({"multipart/form-data"}) 
public String addCustomer(String formData) {
  System.out.println("The formData\n" + formData);
  return "SEEYA";
}

下一部分是如何将XML解析为Pojo。这是一个不同的主题。