1. 程式人生 > >用Jersey構建RESTful服務3--JAVA物件轉成JSON輸出

用Jersey構建RESTful服務3--JAVA物件轉成JSON輸出

一、 總體說明

XML和JSON 是最為常用的資料交換格式。本例子演示如何將java物件,轉成JSON輸出。

二、流程

1.在上文專案中,

在“com.waylau.rest.resources.UserResource“中增加程式碼,程式碼如下:

    @GET  
    @Path("/getUserJson")  
    @Produces(MediaType.APPLICATION_JSON)  
    public User getUserJson() {  
     User user  = new User();  
     user.setAge("27");  
     user.setUserId("005");  
     user.setUserName("Fmand");  
     return user;  
    } 

MediaType.APPLICATION_JSON 說明輸出的是JSON格式

期望獲取到json的資料,此時,專案報錯

org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException: MessageBodyWriter not found for media type=application/json, type=class com.waylau.rest.bean.User, genericType=class com.waylau.rest.bean.User.
	at org.glassfish.jersey.message.internal.WriterInterceptorExecutor$TerminalWriterInterceptor.aroundWriteTo(WriterInterceptorExecutor.java:247)
	at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:162)
	at org.glassfish.jersey.filter.LoggingFilter.aroundWriteTo(LoggingFilter.java:293)
	at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:162)
	at org.glassfish.jersey.server.internal.JsonWithPaddingInterceptor.aroundWriteTo(JsonWithPaddingInterceptor.java:103)
	at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:162)
	at org.glassfish.jersey.server.internal.MappableExceptionWrapperInterceptor.aroundWriteTo(MappableExceptionWrapperInterceptor.java:88)
	at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:162)
	at org.glassfish.jersey.message.internal.MessageBodyFactory.writeTo(MessageBodyFactory.java:1154)
	at org.glassfish.jersey.server.ServerRuntime$Responder.writeResponse(ServerRuntime.java:571)
	at org.glassfish.jersey.server.ServerRuntime$Responder.processResponse(ServerRuntime.java:378)
	at org.glassfish.jersey.server.ServerRuntime$Responder.process(ServerRuntime.java:368)
	at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:262)


此時,需要獲取json轉換包的支援 。

可以由多種方式實現:MOXy、JSON-P、Jackson、Jettison等,本例為Jackson。

4. 專案中引入jackson-all-1.9.11.jar

5.在“com.waylau.rest”目錄下建立RestApplication.java

package com.waylau.rest;

import org.codehaus.jackson.jaxrs.JacksonJsonProvider;
import org.glassfish.jersey.filter.LoggingFilter;
import org.glassfish.jersey.server.ResourceConfig;
 
/**
 * 應用
 * @author waylau.com
 * 2014-3-18
 */
public class RestApplication extends ResourceConfig {
    public RestApplication() {
 
     //服務類所在的包路徑
     packages("com.waylau.rest.resources");
     //註冊JSON轉換器
     register(JacksonJsonProvider.class);
 
    }
}

6.修改web.xml,初始化從RestApplicaton進入應用,如下:
<servlet>  
     <servlet-name>Way REST Service</servlet-name>
	 <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
	  <init-param>
	       <param-name>javax.ws.rs.Application</param-name>
	       <param-value>com.waylau.rest.RestApplication</param-value>
	   </init-param>
	 
    <load-on-startup>1</load-on-startup>
  </servlet>
  
  <servlet-mapping>
    <servlet-name>Way REST Service</servlet-name>
    <url-pattern>/rest/*</url-pattern>
  </servlet-mapping>
7.執行專案,再次訪問http://localhost:8089/RestDemo/rest/users/getUserJson
即可輸出JSON文字


相關推薦

Jersey構建RESTful服務3--JAVA物件JSON輸出

一、 總體說明 XML和JSON 是最為常用的資料交換格式。本例子演示如何將java物件,轉成JSON輸出。 二、流程 1.在上文專案中, 在“com.waylau.rest.resources.UserResource“中增加程式碼,程式碼如下: @GET

Jersey構建RESTful服務2--JAVA物件XML輸出

一、 總體說明 XML和JSON 是最為常用的資料交換格式。本例子演示如何將java物件,轉成XML輸出。 二、流程 1.在上文的例子中,建立一個包“com.waylau.rest.bean” 2.在該包下建立一個JAVA類"User" package com.

Jersey構建RESTful服務-JAVA物件XML/Json輸出

1、XML資料型別輸出: 一、 總體說明 XML和JSON 是最為常用的資料交換格式。本例子演示如何將java物件,轉成XML輸出。 二、流程 1.在上文的例子中,建立一個包“com.waylau.rest.bean” 2.在該包下建立一個JAVA類"User"

Jersey構建RESTful服務7--Jersey+SQLServer+Hibernate4.3+Spring3.2

sqlserver get user ide ren restful mar ron ddc 一、整體說明 本例執行演示了用 Jersey 構建 RESTful 服務中。怎樣集成 Spring3 二、環境 1.上文的項目RestDemo 2.

JS物件Java物件JSON

一.Json物件與Json字串的轉化 1.jQuery外掛支援的轉換方式:   $.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以將json字串轉換成json物件   2.瀏覽器支援的轉換方式(Firefox,chrome,oper

注意:java物件json成立的基本條件只需要有get方法!!!

我們一般以為比如一個student物件轉換成json字串,那麼必須要有對應的欄位(屬性),其實不是這樣的。java物件轉換成json字串,若想要獲得key、alue鍵值對,只需要物件中有getXxx( 

Simplify-Core -- java物件轉換JsonJson generator)

先感嘆一波今天正式畢業,拿到了畢業證和學位證,然後部落格也有三個多月沒寫了,最近自己寫了一個工具類的專案,Simplify,旨在簡化重複的JAVA程式碼,基於JDK8,無其它jar包依賴,提供序列化,json,日期等常見操作。json generator部分寫的比較完善了, parse部

Gson基本使用 -- 解析json,jsonArray。將任意java物件化為json格式

    Gson是一款幫助解析Json,JsonArray和將Java物件轉換為Json格式的框架。一、將json解析為java物件先看效果圖程式碼實現1.在app模組的build.gradle的dependencies中引入Gsonimplementation 'com.g

Android與Java伺服器端資料互動和Java物件轉換JSON物件

Ticket封裝成一個類 package com.model; public class Ticket { private int ticket_id; private int price; private int user

Java物件 化成 json字串 輸出

 ======ok == com.alibaba.fastjson.JSONObject ====== res :  {"bwDictId":2,"list":"127.0.0.1","logUserId":33,"note":"黑名單測試Note","sco

後臺將多個java物件化成json陣列傳到前端

1.將多個物件儲存在陣列 public static String toJsonArray(List<Object> list){           if(null == list || list.size() == 0)                t

jsp中如何將Java物件js物件?

jsp中如何將Java物件轉成js物件?1、首先我們要明確 jsp頁面Java物件如何和js進行交換。是通過jsp表示式也就<%=%>,它可以寫在jsp頁面的任何地方,當然可以寫在JavaS

Java物件轉換Json字串

使用gson-2.3.1.jarpackage org.acooly.thrift.demo.client; import java.util.ArrayList; import com.google.gson.Gson; public class json { pub

json字串json物件,以及json物件json字串

json字串是一種能轉成json物件的字串(我自己理解的), 如  var MRWStr = '{name:WangHongxu,sex:man}', 把 MRW轉成json物件只需要 var MRWObj = JSON.parse(MRWStr); 就能得到 {n

Gson把物件json格式的字串

最近在做一個java web service專案,需要用到jason,本人對java不是特別精通,於是開始搜尋一些java平臺的json類庫。 發現了google的gson,因為之前對於protocolbuf有一些瞭解,帶著一些好奇心,我開始使用了gson。

js將物件json格式

/** * 序列化成json字串 * @param obj * @return */ function Serialize(obj){ switch(obj.construc

將class物件json物件並通過ajax傳遞到前端

後臺程式碼: /// <summary> /// 測試用的類 /// </summary> public class Product { public int productId { get;

jersey+maven構建restful服務

url auto ins cal family ring sdn edi 節點 一、新建一個Maven Web項目 a) 新建一個簡單的Maven項目 b) 將簡單的Maven項目轉成Web項目 (若沒出現further configuration

Jersey 實踐:構建RESTful服務及解決跨域問題

最近在準備為我的小程式做個後臺,剛好之前在網上了解了RESTful這種設計風格,覺得很簡單輕量,便準備採用這種設計方式。有很多框架都能支援RESTful的設計,在一番權衡之後,決定選擇jersey框架,因為我的小程式的併發量並不大,而且自己對於spring也還不太熟悉,而je

使用spring mvc或者resteasy構建restful服務

很好 trap 如何 系統 路徑 查找 factor 執行 閱讀 看到最近一個項目裏用resteasy來構建restful接口,有點不明白,不少Spring mvc4.0以後也可以很方面的實現restful服務嗎,為啥還要在Spring MVC的項目裏還引入resteasy