Как заполучить сообщение XML в JaxRs - PullRequest
1 голос
/ 05 ноября 2011

У меня есть мой крюк как

@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 голосов
/ 06 ноября 2011

В 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 -

((BindingProvider)proxy).getRequestContext()

Но вы можете использовать аннотацию @Context

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

0 голосов
/ 27 ноября 2011

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. это другая тема.

0 голосов
/ 05 ноября 2011

Если вы используете джерси, вы можете использовать LoggingFilter Джерси (или вдохновиться этим для реализации вашего фильтра, который делает что-то подобное), если вы не хотите зависеть от конкретного API реализации,вам придется использовать JAXB для записи XML для SiebelMessage.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...