日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

jax-rs jax-ws_JAX-RS 2.x与Spring MVC:返回对象列表的XML表示

發布時間:2023/12/3 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jax-rs jax-ws_JAX-RS 2.x与Spring MVC:返回对象列表的XML表示 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

jax-rs jax-ws

JSON是所有REST * API的王者,但是您仍然可能需要公開多種表示形式,包括XML。 使用JAX-RS和Spring MVC都非常簡單。 實際上,唯一要做的就是用JAXB注釋對從API調用返回的POJO進行注釋。

但是在我看來,序列化對象列表時,JAX-RS會比Spring MVC更好。 讓我們來看看。

POJO

兩者的唯一要求(假設使用JAXB)是使用JAXB注釋對POJO進行注釋:

@XmlRootElement public class Incident {}

JAX-RS方式

@GET @Path("user/{userId}/incident") public List<Incident> getUserIncidents(@PathParam("userId") long userId) {// return }

當以application/json作為可接受的表示執行上述方法時,JAX-RS會將返回的列表正確序列化為JSON,如下所示:

[{"description": "Lorem ipsum..." ,"status": "NEW"},{"description": "Lorem ipsum..." ,"status": "NEW"} ]

沒有特殊的包裝對象。 生成的XML可能如下所示:

<incidents><incident><description>Lorem ipsum ...</description><status>NEW</status></incident><incident><description>Lorem ipsum ...</description><status>NEW</status></incident> </incidents>

它只是工作。 沒有包裝對象。 沒有額外的工作。 我們完了。

Spring MVC方式(JAXB)

在Spring中您將如何做(比如說Spring Boot,因為它起步最快)?

@RequestMapping(value = "user/{userId}/incident") public List<Incident> getUserIncidents(@PathVariable("userId") long userId) {// return }

使用以下請求請求JSON表示形式后:

$ curl -i http://localhost:8080/user/3/incident

結果與JAX-RS相同。

要使服務器呈現XML而不是JSON,您可能必須發送Accept: text/xml標頭:

$ curl -i -H "Accept: text/xml" http://localhost:8080/user/3/incident

但是結果將是: 406不可接受。 在這種情況下找不到可接受的表示 。

Spring MVC方式(jackson-dataformat-xml)

使用Spring MVC,有一種解決方案可以立即使用,類似于JAX-RS,但輸出效果較差 。 該解決方案使用jackson-dataformat-xml。 向您的項目添加依賴項:

<dependency><groupId>com.fasterxml.jackson.dataformat</groupId><artifactId>jackson-dataformat-xml</artifactId> </dependency>

使用新的依賴關系,對XML表示的調用應返回如下內容:

<ArrayList><item><description>Lorem ipsum ...</description><status>NEW</status></item><item><description>Lorem ipsum ...</description><status>NEW</status></item> </ArrayList>

請注意,jackson-dataformat-xml不需要使用JAXB批注。

翻譯自: https://www.javacodegeeks.com/2015/04/jax-rs-2-x-vs-spring-mvc-returning-an-xml-representation-of-a-list-of-objects.html

jax-rs jax-ws

總結

以上是生活随笔為你收集整理的jax-rs jax-ws_JAX-RS 2.x与Spring MVC:返回对象列表的XML表示的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。