0

我有一个模式,它将产生这样的 XML

<root-element>
   <element_1>value_a<element_1>
   <element_2>value_b<element_2>
   <element_3>value_c<element_3>
   <element_1>value_a<element_1>
   <element_2>value_b<element_2>
   <element_3>value_c<element_3>
</root-element>

现在,在我的 REST 方法中,有两种不同的方法可以接收输入调用

@POST
@Path(PATH+"/{" + PATH_2 + "}/query-by-list." + XML)
@Consumes (MediaType.APPLICATION_XML)
@Produces(MediaType.APPLICATION_XML)
public Response getShipmentListXML (String xmlRequest) 

其他我们可以做的就是

@POST
@Path(PATH+"/{" + PATH_2 + "}/query-by-list." + XML)
@Consumes (MediaType.APPLICATION_XML)
@Produces(MediaType.APPLICATION_XML)
public Response getShipmentListXML (JAXBElement<ShipmentListType> jaxbShipmentListType) 

简而言之,第一种方法是获取“原始”请求,第二种方法是将请求编组为适当的 jaxb 元素类型。

问题是,哪一个会更快?接受原始请求的那个或正在编组的那个……或者……那会提出任何请求吗?

PS:原始请求无论如何都将输入原始字符串编组到 jaxbobject 中。唯一的区别是输入请求(xml 正文)也在其他地方使用。可以从那些 jaxb 对象转换。

4

1 回答 1

1

如果您不需要读取或存储 XML 有效负载,那么从性能角度来看,无论您是手动还是通过 Jersey 进行解组,都不会产生任何影响,但后者会减少代码和工作量。

如果您确实需要读取或存储 XML 有效负载,那么让 Jersey 为您进行解组的效率较低,因为它需要您稍后重新编组。在这种情况下,您不妨只获取原始字符串。

于 2013-09-30T23:31:10.570 回答