java jersey,java Jersey

java jersey,java Jersey场景:用Jersey构建RESTful服务3-JAVA对象转成JSON输出用Jersey构建RESTful服务3–JAVA对象转成JSON输出一、总体说明XML和JSON是最为常用的数据交换格式。本例子演示如何将java对象,转成JSON输出。二、流程1.在上文项目中,在“com.waylau.rest.resources.UserResource“中增加代码,代码如下:@GET@Path(…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

场景:用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格式

2,运行项目,浏览器输入http://localhost:8089/RestDemo/rest/users/getUserJson

期望获取到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)

a0c347284ee7709d53fdc6a62d41068e.png

此时,需要获取json转换包的支持 。

可以由多种方式实现:MOXy、JSON-P、Jackson、Jettison等,本例为Jackson。

3. jackson-all-1.9.11.jar 下载地址http://wiki.fasterxml.com/JacksonDownload

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进入应用,如下:

Way REST Service

org.glassfish.jersey.servlet.ServletContainer

javax.ws.rs.Application

com.waylau.rest.RestApplication

1

Way REST Service

/rest/*

7.运行项目,再次访问http://localhost:8089/RestDemo/rest/users/getUserJson

即可输出JSON文本

26d0d29424e6deda1085c068fdbc0c6b.png

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/157850.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号