2013-09-30 58 views
0

我有一個模式,這將導致這樣什麼是更有效

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

現在的XML,在我的休息方法,也有接收輸入呼叫的兩個不同的方法

@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元素類型。

問題是,哪一個會更快?正在接受原始請求或正在進行編組的請求......或......會提出任何請求嗎?

P.S: 原始請求正在將輸入的原始字符串編組爲jaxbobject。唯一的區別是輸入請求(xml主體)也在其他地方使用。可以從那些jaxb對象轉換。

回答

1

如果您不需要讀取或存儲XML有效內容,那麼無論您是手動還是通過Jersey進行解組,都不會影響性能觀點,但後者將減少代碼和工作量。

如果您確實需要讀取或存儲XML有效負載,那麼讓Jersey對您進行反編組的效率不高,因爲稍後您需要重新編組。在這種情況下,你可能只是得到原始字符串。

+0

我需要XML Payload,因爲我必須將相同的請求發送到服務器(REST API)。我相信,在這種使用情況下,保持XML Payload是合理的。對吧? –

+1

是的,在這種情況下,將輸入作爲字符串是有意義的。 – TheArchitect

相關問題