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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 一比一还原axios源码(零)—— 是结束亦是开始

    从vue2版本开始,vue-resource就不再被vue所维护和支持,官方也推荐使用axios,所以,从我使用axios至今,差不多有四五年了,这四五年的时间只能算是熟练应用,很多内部的实现和原理不

    2022年3月25日
    49
  • count(distinct) 与group by 浅析

    count(distinct) 与group by 浅析在传统关系型数据库中,groupby与count(distinct)都是很常见的操作。count(distinctcolA)就是将colA中所有出现过的不同值取出来,相信只要接触过数据库的同学都能明白什么意思。count(distinctcolA)的操作也可以用groupby的方式完成,具体代码如下:selectcount(distinctcolA)fromtable1;selec

    2022年5月11日
    43
  • 【全网独家】手把手教你制作一个Ubuntu Deb 安装包「建议收藏」

    Ubuntu Deb 安装包加班到9点多了,今天本来准备整理一下Linux常用命令,没有时间了。目前还没有回家。就发一篇昨天整理的一个deb打包的教程,网上搜了很多,都是讲解命令的,没有一个比较完整的教程。如果你公司用到了deb打包,可以仔细阅读一下,如果你没有接触过deb打包,那可以简单了解一下,毕竟技多不压身。本文主要参考博文:Debconf程序员的教程 :http://www.fif…

    2022年2月28日
    47
  • Javac编译过程「建议收藏」

    Javac编译过程「建议收藏」Javac编译过程大致分为4个过程,分别是:词法分析语法分析语义分析代码生成词法分析  词法分析是将源代码的字符流转变为标记(Token)集合,单个字符是程序编写过程的最小元素,而标记则是编译过程的最小元素,关键字、变量名、字面量、运算符都可以成为编辑,如“inta+b=2”这句代码中包含了6个标记,分别是int、a、=、b、+、2,虽然关键字int由三个字符构成,但是

    2022年5月27日
    51
  • 自动化测试po模式是什么?自动化测试po分层如何实现?-附详细源码[通俗易懂]

    自动化测试po模式是什么?自动化测试po分层如何实现?-附详细源码[通俗易懂]一、什么是PO模式全称:pageobjectmodel简称POMPO模式最核心的思想是分层,实现松耦合!实现脚本重复使用,实现脚本易维护性!主要分三层:1.基础层BasePage:封装一些最基础的selenium的原生的api方法,元素定位,框架跳转等。2.PO层:元素定位、获得元素对象,页面动作3.测试用例层:业务逻辑,数据驱动!三者的关系:PO层继承继承层,测试用例层调用PO层!二、非PO模式和PO模式优缺点对比笔者来自公众号:软测之家 非PO模式 PO模式.

    2022年5月27日
    92
  • Kettle工具入门[通俗易懂]

    Kettle工具入门[通俗易懂]Kettle工具入门Kettle工具入门 Kettle是什么? 为什么要用Kettle? 怎么用Kettle? 下载运行 简单应用 表到表转换 json到表的操作 参考 Kettle是什么?Kettle是水壶。“多喝热水”是我们对女朋友美好的祝福。因为未经处理的生水(原始数据),含有各种杂质(脏数据),无法直接饮用(入…

    2022年10月17日
    2

发表回复

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

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