放心JsonPath在JUnit测试中工作,但在应用程序(Weblogic)中部署时不工作

放心JsonPath在JUnit测试中工作,但在应用程序(Weblogic)中部署时不工作,junit,weblogic,rest-assured,rest-assured-jsonpath,Junit,Weblogic,Rest Assured,Rest Assured Jsonpath,先来点背景知识。 我有一个部署在Weblogic中的应用程序。它从服务接收Json响应。我试图使用JsonPath来导航树,但遇到了一个不寻常的问题 我正在使用Maven构建/部署应用程序。 依赖关系: <dependency> <groupId>com.jayway.restassured</groupId> <artifactId>json-path</artifactId> <version>1.8.1&l

先来点背景知识。 我有一个部署在Weblogic中的应用程序。它从服务接收Json响应。我试图使用JsonPath来导航树,但遇到了一个不寻常的问题

我正在使用Maven构建/部署应用程序。 依赖关系:

<dependency>
  <groupId>com.jayway.restassured</groupId>
  <artifactId>json-path</artifactId>
  <version>1.8.1</version>
</dependency>
这是我现在看到的

String miniJson = "{\"ChangeStatus\":{\"Code\":{\"value\":\"1002\"},\"Description\":{\"value\":\"Matched more then 10 records\"}}}";
JsonPath miniJsonPath = new JsonPath(miniJson);
String statusCode = miniJsonPath.getString("ChangeStatus.Code.value");
在JUnit中,这段代码有效,我可以成功地断言1002。 在应用程序中,在推送到weblogic之后,这个确切的代码片段不起作用。 它抛出了一个错误

任何想法都欢迎。 仅供参考,我们使用的是Weblogic 10.3.6


提前谢谢

我不是Weblogic方面的专家,但作为替代方案,您可以包括

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.2.0-rc1</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.2.0-rc1</version>
    </dependency>

希望一切顺利

我发现jsonpath依赖于antlr。 Weblogic也包括这个包,但我相信它是一个旧版本

我通过告诉Weblogic使用应用程序中包含的类修复了这个问题。 weblogic.xml

<wls:container-descriptor>
    <wls:prefer-web-inf-classes>true</wls:prefer-web-inf-classes>
</wls:container-descriptor>

真的

您已经验证了您的json-path-1.8.1.jar是您部署的应用程序的一部分吗?堆栈跟踪是什么样子的?谢谢你的反馈。实际上,我正在应用程序的其他地方使用这些代码。我现在正在处理的作品比我展示的要复杂得多。JsonPath是迄今为止我发现的最有用的工具,可以处理我正在处理的Json的过度嵌套特性。我确实找到了解决方案,并将发布它。
    `new ObjectMapper().readValue(miniJson, ChangeStatus.class)`  
<wls:container-descriptor>
    <wls:prefer-web-inf-classes>true</wls:prefer-web-inf-classes>
</wls:container-descriptor>