首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >泽西测试框架中的UnrecognizedPropertyException

泽西测试框架中的UnrecognizedPropertyException
EN

Stack Overflow用户
提问于 2015-12-04 01:40:40
回答 1查看 1.2K关注 0票数 0

我对泽西测试框架很陌生。我正在尝试在我的项目中使用jersey测试框架来实现测试用例。我有一项休息服务,其网址是:

http://localhost:8080/EzSupportBackend/a/dealerservices/getdealerdetails/FAB/ACZOKuBmtvyni16eMJ3AoSVg_HxL3bh3Lz0WiWNJhXudh9M90LSc8bDHD-Y2JpcbISZcC_DM2PL4yqSsmXUKA65ZmvuoiQ_wotgU1OvA8GGw_yPMwVnXGg==

我尝试用如下代码使用泽西岛来测试这个服务:

代码语言:javascript
运行
AI代码解释
复制
public class DealerServicesTest extends JerseyTest{
@Override
protected AppDescriptor  configure() {
    return new WebAppDescriptor.Builder().build();
}

@Test
public void testGetDealerDetails() throws JSONException,URISyntaxException {
    WebResource webResource = client().resource("http://localhost:8080/");
    JSONObject json = webResource.path("EzSupportBackend/a/dealerservices/getdealerdetails/FAB/ACZOKuBmtvyni16eMJ3AoSVg_HxL3bh3Lz0WiWNJhXudh9M90LSc8bDHD-Y2JpcbISZcC_DM2PL4yqSsmXUKA65ZmvuoiQ_wotgU1OvA8GGw_yPMwVnXGg==").get(JSONObject.class);

    assertEquals("ONLINE", json.get("companyType"));
    assertEquals("FabFurnish", json.get("companyName"));        
    assertEquals("Gurgoan,Haryana, India", json.get("companyAddress"));
    assertEquals("04222456803", json.get("phoneNumber"));
    assertEquals("ACTIVE", json.get("status"));     
    assertEquals("customerservice@fabfurnish.com", json.get("emailId"));
}
}

当我通过邮递员(Chrome扩展)测试这项服务时,我得到了如下正确的回应:

代码语言:javascript
运行
AI代码解释
复制
{
  "companyType": "ONLINE",
  "companyName": "FabFurnish",
  "companyAddress": "Gurgoan,Haryana, India",
  "companyLocation": null,
  "longitude": "77.023419",
  "phoneNumber": "04222456803",
  "serviceRating": 0,
  "repairRating": 0,
  "warrantyRating": 0,
  "shopRating": 0,
  "status": "ACTIVE",
  "createdOn": 1446613095557,
  "updatedOn": 1446613095557,
  "companyId": "FAB",
  "lattitde": "28.47427",
  "emailId": "customerservice@fabfurnish.com",
  "createdby": null,
  "updatedby": null
}

但是,通过这个测试,我得到了以下例外:

代码语言:javascript
运行
AI代码解释
复制
com.sun.jersey.api.client.ClientHandlerException:     com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "companyType" (class org.json.JSONObject), not marked as ignorable (0 known properties: ])
 at [Source: sun.net.www.protocol.http.HttpURLConnection$HttpInputStream@45b4c3a9; line: 1, column: 17] (through reference chain: org.json.JSONObject["companyType"])
    at com.sun.jersey.api.client.ClientResponse.getEntity(ClientResponse.java:563)
    at com.sun.jersey.api.client.ClientResponse.getEntity(ClientResponse.java:506)
    at com.sun.jersey.api.client.WebResource.handle(WebResource.java:674)
    at com.sun.jersey.api.client.WebResource.get(WebResource.java:191)
    at com.vs.mhs.ezsupport.services.DealerServicesTest.testGetDealerDetails(DealerServicesTest.java:27)

谁能帮我找出原因??

编辑:我的代码如下所示:

代码语言:javascript
运行
AI代码解释
复制
@PermitAll
@GET
@Path("/getdealerdetails/{companyId}/{token_id}")
public Response getDealerDetails(@PathParam("companyId") String companyId, @Context SecurityContext userContext, @Context HttpServletRequest request){
    boolean isUserAuthorised = isUserAuthenticated(userContext);
    DealerDetails dealer = null;
    DealerDetailsView getDealerView = null;
    if(isUserAuthorised){
        EntityManager em = (EntityManager) request.getAttribute(FilterConstants.ENTITYMANAGER);
        DealerDetailsBDL dealerbdl = new DealerDetailsBDL(em);
        dealer = dealerbdl.getDealerDetails(companyId);
        getDealerView = new DealerDetailsView(dealer);
    }
    return Response.ok(getDealerView).build();          
}

DealerDetailsView是一个具有私有变量的类,用于我在下面列出的属性以及getter和setter:

代码语言:javascript
运行
AI代码解释
复制
private String companyid;
private String companyType;
private String companyName;
private String companyAddress;
private String companyLocation;
private String lattitude;
private String longitude;
private String phoneNumber;
private String emailid;
private int serviceRating;
private int repairRating;
private int warrantyRating;
private int shopRating;
private String status;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-04 02:02:38

Jackson是JSON提供者,Jackson通常使用模型POJO,而JSONObject不是。杰克逊正在寻找companyTypeJSONObject的一个属性,但它并没有。所以你才会有例外。如果您没有专门针对该JSON的POJO,那么只需将其作为字符串获取,并使用该字符串创建JSONObject

代码语言:javascript
运行
AI代码解释
复制
String jsonString = webResource...get(String.class);
JSONObject json = new JSONObject(jsonString);

更新

用于Jackson的POJO只是一个将JSON字段映射到类属性(遵循JavaBean命名约定)的类。例如,对于这两个JSON字段

代码语言:javascript
运行
AI代码解释
复制
"companyType": "ONLINE",
"companyName": "FabFurnish"

你可以有这样的课程

代码语言:javascript
运行
AI代码解释
复制
public class CompanyInfo {
    private String companyType;
    private String companyName;

    public CompanyInfo() {}

    public String getCompanyInfo() { return companyInfo; }
    public void setCompanyInfo(String info) { this.companyInfo = info; }
    
    public String getCompanyType() { return companyType; }
    public void setCompanyType(String type) { this.companyType = type; }
}

为了将JSON字段与Java属性匹配,属性(getter/setter)应该以get/set和字段的确切名称作为前缀,第一个字母大写,如上面所示。因此,只需使用所有其他JSON字段完成POJO,序列化就应该与CompanyInfo一起工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34085137

复制
相关文章
现实世界中的 Python
非常稳定。 自 1991 年起大约每隔 6 到 18 个月就会推出新的稳定发布版,这种状态看来还将持续下去。 目前主要发布版本的间隔通常为 18 个月左右。
py3study
2020/01/16
4650
对于问题的简单定义
学习此部分的目的:发现在没有单独的行动可以解决问题的时候,机器如何找到一个行动序列达到他的目标;在这部分中,通过讨论一些无信息的通用搜索算法,来比较各部分算法的优缺点; 1;问题求解的智能体 当智能体能够采用一个目标并针对这个目标得到满足而去行事,达到性能度量最大化时会被简化。因为这个世界不确定的因素太多,而问题的解可能有很多的问题,比如说过多的步骤。将问题形式化是决策对于给定的目标需要考虑哪些行动和状态的过程。一般来说一个机器有多个评价未知的直接选项的时候,可以首先检验各个不同的能导致已知评价状态的可能
云时之间
2018/04/11
8790
浅论C++的复杂性
C++语言已经有了30多年的历史。作为一门影响广泛的编程语言,它所受到的关注和争论恐怕是任何一门其他的语言所不能比拟的。十几年前,Java等新生语言的出现曾导致“C++信任危机”,但最终C++以自身非凡的品质屹立于主流编程语言的行列。在有着众多编程语言可以选择的今天,到底还有没有必要学习C++?怎样学习C++?怎样使用C++?对于广大的程序员,特别是对于刚刚接触编程的学习者,这些问题都是至关重要的。
恋喵大鲤鱼
2018/08/03
1.1K0
C++自定义类的对象对于其私有变量的访问
以下语法规则是不言自明的: 在自定义类A的成员函数中,可以对该类的私有成员变量进行赋值等操作,但是在类定义之外所声明的A类的对象aobj是不可以直接访问A类的私有变量的,只有通过在A类的成员函数中开放访问其私有变量的接口,对象aobj才可以对私有变量进行操作。
大忽悠爱学习
2021/11/15
1.5K0
现实世界中的原生 Java
作者 | KimJohn Quinn, Rakesh Raja, Jason Moehlman
深度学习与Python
2022/06/11
6620
现实世界中的原生 Java
MVC 软件架构对于现实生活的启发
近期学习了MVC的软件架构。期间不禁得思考这样的架构是否可以作为支撑日常生活计划甚至是思考的模型。
杨丝儿
2022/03/17
4360
MVC 软件架构对于现实生活的启发
[物联网] 3.1 设备--通向现实世界的接口
为什么要学习设备的相关知识 经过前两章的学习,想必各位读者已经掌握物联网这个词描绘出的世界和用于实现物联网的系统架构了。基于这点,这一章将会为大家介绍在物联网世界中起着核心作用的因素,即设备的相关知识。 可能有人会觉得自己没有必要学习设备的机制,但是,请这样认为并想赶快读完本章的读者稍稍放慢速度,因为本章正是为了那些以往没有从事过设备开发的读者们编写的。 而且,所有的工程师都有必要加深对设备的理解,因为这关系到“连通性”给设备开发带来的变化。这里我们就先来看看这些变化。 连通性带来的变化 很显然,智能手机和随身听等伴随大家日常生活的设备都是由硬件和软件组成的。硬件经过了精致的设计,软件则用来控制硬件。设备开发的本质就是在最大限度上实现硬件和软件的完美配合。 对于平日里从事 Web 应用程序开发的各位软件工程师来说,提到设备开发,或许大家就会有一种敬而远之的感觉。在考虑独立开发某种设备的时候,肯定会有人担心以下这些问题。 ● 是否需要对硬件有深入的了解 ● 开发设备控制软件是否需要专业知识 ● 开发硬件是否需要特殊的开发环境 就结论而言,这些问题的答案很统一:需要。就像大多数人都知道的那样,用于控制设备的软件有一个明确的种类,那就是“嵌入式软件”。开发嵌入式软件需要极强的专业性,即使是在物联网的世界,这一本质也基本没有什么变化。 那么,物联网会带来哪些改变呢?解开这个问题的关键词就是“连通性”。连通性一词表示的是机器和系统间的相互连接性和结合性。物联网设备试图经由网络来“连接”外部系统,并通过以下技术革新让以往人们无法想象的一些设备都具备了连通性(图 3.1)。 ● 硬件的进化使设备的小型化和高级化得以发展 ● 能够在广域条件下轻易地利用高速度 / 高品质网络的环境得以实现
科控物联
2022/03/29
2970
[物联网] 3.1 设备--通向现实世界的接口
C++丨初识C++像极了C语言
Reference:https://en.cppreference.com/w/cpp/keyword
AXYZdong
2022/09/02
1.5K0
C++丨初识C++像极了C语言
像这样的高考,其实我们每天都在经历
2022年6月7日,北京时间11:30,随着高考第一场科目语文考试结束,全国各地的高考作文题也正式在公众面前“登台亮相”。今年全国乙卷的高考作文题目是“跨越,再跨越”,双奥之城闪耀世界,两次奥运会展示了我国综合国力的跨越式发展,同期腾讯云数据库也实现了从儿童向有为青年的跨越。 卓越永无止境,跨越永不停歇。腾讯云数据库在跨越、再跨越的国产化路上,历经十八载,交出了自己的答卷。 1978年,萨师煊老师在黑板上写下“数据库”三个字,数据库理论正式进入中国。如今国产数据库已经走过了整整44年。从上世纪八九十年代,国
腾讯云数据库 TencentDB
2022/06/08
4810
像这样的高考,其实我们每天都在经历
【Python环境】Python分类现实世界的数据
引入 一个机器可以根据照片来辨别鲜花的品种吗?在机器学习角度,这其实是一个分类问题,即机器根据不同品种鲜花的数据进行学习,使其可以对未标记的测试图片数据进行分类。这一小节,我们还是从scikit-learn出发,理解基本的分类原则,多动手实践。 Iris数据集 Iris flower数据集是1936年由Sir Ronald Fisher引入的经典多维数据集,可以作为判别分析(discriminant analysis)的样本。该数据集包含Iris花的三个品种(Iris setosa, Iris virgin
陆勤_数据人网
2018/02/27
9980
【Python环境】Python分类现实世界的数据
【C++】走进C++的世界
定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后跟着一对{}即可,{}中即为命名空间的成员。
平凡的人1
2022/11/15
9790
【C++】走进C++的世界
区块链游戏:虚拟世界与现实世界间的博弈
游戏平台是区块链技术落地的最好土壤。当今,区块链游戏成为了生活不可或缺的一部分。区块链游戏已经演变为90后、00后最热衷的社交方式。区块链游戏能够使游戏玩家自由穿梭于虚拟和现实世界间,在游戏中快意人生。
陌上花开2018
2018/07/05
2.7K0
区块链游戏:虚拟世界与现实世界间的博弈
多云世界中的三个严酷的现实
调查机构Gartner公司的调查表明,云计算和工业化服务的增长以及传统数据中心外包的减少,表明了企业向混合基础设施服务的巨大转变。到2021年其市场规模估计将达到917.4亿美元。 在过去的五年中,软
静一
2018/03/15
8850
多云世界中的三个严酷的现实
世界地球日|你的“衣食住行”也可以像这样酷炫到爆!
俗话说得好,科技改变生活,现如今人们也在用科技在改变全球环境。 世界地球日(Earth Day),即每年的4月22日,是一个专为世界环境保护而设立的节日,旨在提高民众对于现有环境问题的意识,并动员民众
镁客网
2018/05/25
5800
对于没有编程经验的人,R 语言是否很难掌握?
R 是统计领域广泛使用的诞生于 1980 年左右的 S 语言的一个分支。R 是属于 GNU 系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。 从R的普及来看,国外的普及度要明显好于国内,跟盗版windows的泛滥会影响linux在中国的普及一样的道理,破解的SAS与SPSS的存在也影响了R在中国的使用人群。但在国外高校的统计系,R几乎是一门必修的语言,具有统治性的地位。在工业界,作为互联网公司翘楚的google内部也有不少的工程使用R进行数据分析工作。那么,如果你是一个
小莹莹
2018/04/24
1.3K0
对于没有编程经验的人,R 语言是否很难掌握?
英伟达DesignWorks VR用虚拟现实做现实世界的设计
英伟达(NVIDIA)发布了DesignWorks VR,一套新的工具配合之前推出的GameWorks VR SDK一起使用,聚焦代替在虚拟现实里创建物理对象。 现在,英伟达已经启动一项新的倡议,以协助利用虚拟现实技术,帮助产品设计师和建筑师使用虚拟现实的独特功能为真实世界创建对象。 建立在英伟达最近推出的GameWorks VR(专注于在英伟达硬件上发挥虚拟现实体验最大效用的一款SDK)上,DesignWorks VR扩展可用的工具集同时改进支持Open CL,专注于设计和雕刻对象特性甚至面向现实世界的物
GPUS Lady
2018/03/30
7230
边缘服务的一致性、耦合和复杂性
技术公司采用微服务架构已经十多年了,结果好坏参半。微服务之间的依赖关系导致在修改一个服务时也需要修改其他服务,微服务的优势因此打了折扣。这就是所谓的紧密耦合。但组件之间的依赖关系是不可避免的。
深度学习与Python
2021/10/13
9500
判断是否有重复的数字
import java.util.Scanner; import java.util.HashMap; public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); int m=input.nextInt(); HashMap map=new HashMap(); while(m-->0) { int tmp=input.nextInt(); if(
葆宁
2019/04/18
3.5K0
判断是否有重复的数字
服务器上的RTC时间与世界时间不一致解决办法
无论怎么修改ntp server都不行,data命令查看比世界时间快了20分钟左右,使用timedatctl命令查看,发现显示的是RTC时间
姚华
2022/06/29
2.2K0
C++对于大型图片的加载缩放尝试
Qt对于图片的操作主要集中在这几个类 QImage ,QImageReader ,QPixmap 其中QImage这个类对图片的缩放有几个很不错的技巧,不过对于大图片却并不好使,当我们去看QImage的实现代码时,会发现其中读取QImageReader来加载图片,当我们去看QImageReader的实现的时候,我们会发现QImageReader的加载模式是unbuffer-->无缓冲加载模式,而且加载速度也是相当的快,所以QImageReader对大图片进行缩放很好使. 但是QImage也是有一些独特的优势
Gxjun
2018/03/27
1.8K0

相似问题

现实世界中的Clean编程语言?

62

是否有像access()这样的函数,但是对于特定的用户id?

33

对于'UNIX‘有像'dumpbin’这样的命令吗?

31

对于像Option<T>这样的东西是否有锈蚀变量命名约定?

34

有人能用现实世界的语言来定义闭包是什么吗?

514
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文