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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 怎么安装汉化包(svn中文语言包安装)

    检查SVN与汉化包的版本是否一致1、查看tortoiseSVN的版本2、在SVN的安装目录下,将对应版本的汉化包拷过去注意,保证Languages目录下的文件都已删掉3、双击安装汉化包,安装完成时,在出现的最后一个页面中,选中ConfigureTortoiseSVNtousethislanguage即可直接应用。SVN1.12.1对应汉化包的…

    2022年4月18日
    1.9K
  • linux上lrzsz工具的安装与使用[通俗易懂]

    linux上lrzsz工具的安装与使用[通俗易懂]lrzsz官网入口:https://ohse.de/uwe/software/lrzsz.htmllrzsz是一个unix通信套件提供的X,Y,和ZModem文件传输协议,可以用在windows与linux系统之间的文件传输,体积小速度快。1.安装:root用户下输入安装命令:yuminstall-ylrzsz安装完毕2.上传文件:终端输入rz…

    2022年6月23日
    44
  • “狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作

    “狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作一、垃圾文字生成器介绍最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。他的文风可能是这样的:你发现,…

    2022年5月22日
    46
  • mac怎么安装svn_eclipse svn插件安装

    mac怎么安装svn_eclipse svn插件安装相信在windows上朋友,应该都使用过svn,其中TortoiseSVN简单高效,都习惯了,但是TortoiseSVN没有Mac版,今天给大家推荐一款非常相似的软件——SnailSVN

    2022年10月8日
    4
  • NS_TEST_ns是什么软件

    NS_TEST_ns是什么软件TEST

    2025年9月1日
    8
  • discuz php接口文档,Discuz二次开发手册.doc[通俗易懂]

    discuz php接口文档,Discuz二次开发手册.doc[通俗易懂]Discuz二次开发手册Discuz文件说明,有助于discuz爱好者,进行自己的开发,在这里提供方便admincp.php——后台系统设置主程序文件,一般只处理菜单的显示的访问权限,不处理管理控制。ajax.php——论坛模板的ajax判断及数据返回都在这里进行attachment.php——附件文件,仅仅处理附件下载的功能。announcement.php——论坛公告的显示,一般很少改con…

    2022年5月19日
    42

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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