- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
当我尝试通过 ant
运行我的 TestNG
测试时,我得到了 java.lang.NoSuchMethodError: org.springframework.http.MediaType.getCharset() Ljava/nio/charset/Charset
(完整异常(exception)见下文)
我可以轻松编译或运行我的 Web 应用程序,但无法通过 ant 运行测试。我相当确定这是一个类加载问题,但不确定在运行时应该按什么顺序加载类。我正在使用 Spring 4.3.1 和 Spring Security 4.1.1。
加载我的 jar 是否有特定的顺序,以便使用“正确”版本的 org.springframework.http.MediaType
?
[testng] org.testng.TestNGException:
[testng] An error occurred while instantiating class com.avada.rest.api.GroupsIntTest: org.springframework.http.MediaType.getCharset()Ljava/nio/charset/Charset;
[testng] at org.testng.internal.ClassHelper.createInstance1(ClassHelper.java:388)
[testng] at org.testng.internal.ClassHelper.createInstance(ClassHelper.java:290)
[testng] at org.testng.internal.ClassImpl.getDefaultInstance(ClassImpl.java:125)
[testng] at org.testng.internal.ClassImpl.getInstances(ClassImpl.java:191)
[testng] at org.testng.TestClass.getInstances(TestClass.java:104)
[testng] at org.testng.TestClass.initTestClassesAndInstances(TestClass.java:90)
[testng] at org.testng.TestClass.init(TestClass.java:82)
[testng] at org.testng.TestClass.<init>(TestClass.java:45)
[testng] at org.testng.TestRunner.initMethods(TestRunner.java:409)
[testng] at org.testng.TestRunner.init(TestRunner.java:247)
[testng] at org.testng.TestRunner.init(TestRunner.java:217)
[testng] at org.testng.TestRunner.<init>(TestRunner.java:161)
[testng] at org.testng.SuiteRunner$DefaultTestRunnerFactory.newTestRunner(SuiteRunner.java:555)
[testng] at org.testng.SuiteRunner.init(SuiteRunner.java:168)
[testng] at org.testng.SuiteRunner.<init>(SuiteRunner.java:117)
[testng] at org.testng.TestNG.createSuiteRunner(TestNG.java:1359)
[testng] at org.testng.TestNG.createSuiteRunners(TestNG.java:1346)
[testng] at org.testng.TestNG.runSuitesLocally(TestNG.java:1200)
[testng] at org.testng.TestNG.runSuites(TestNG.java:1124)
[testng] at org.testng.TestNG.run(TestNG.java:1096)
[testng] at org.testng.TestNG.privateMain(TestNG.java:1425)
[testng] at org.testng.TestNG.main(TestNG.java:1394)
[testng] Caused by: java.lang.NoSuchMethodError: org.springframework.http.MediaType.getCharset()Ljava/nio/charset/Charset;
[testng] at org.springframework.web.client.RestTemplate$AcceptHeaderRequestCallback.getSupportedMediaTypes(RestTemplate.java:757)
[testng] at org.springframework.web.client.RestTemplate$AcceptHeaderRequestCallback.doWithRequest(RestTemplate.java:733)
[testng] at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:617)
[testng] at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:580)
[testng] at org.springframework.web.client.RestTemplate.getForObject(RestTemplate.java:287)
[testng] at com.avada.rest.api.ApiTestClient.getAll(ApiTestClient.java:81)
[testng] at com.avada.rest.api.GroupsIntTest.<clinit>(GroupsIntTest.java:17)
[testng] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[testng] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
[testng] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[testng] at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
[testng] at org.testng.internal.ObjectFactoryImpl.newInstance(ObjectFactoryImpl.java:29)
[testng] at org.testng.internal.ClassHelper.createInstance1(ClassHelper.java:377)
[testng] ... 21 more
[testng] The tests failed.
最佳答案
令人难以置信...再次被类加载问题挫败...一个名为 activemq-minimal-5.13.3.jar
的 uber jar 引用了 spring
jar是它引起了冲突。 activemq-minimal-5.13.3.jar
按字母顺序排在 spring
之前,因此 activemq
jar 中的类在 上加载/使用>spring
jar 。更新我的 ant build 以首先加载 spring
类,现在我已经准备好了。
我发现的方法是将我所有的第 3 方库放在一个“测试”项目中,并添加/删除 jar(在问题所在的地方有一定的倾向),直到我能够查明类加载的位置问题是。
关于java.lang.NoSuchMethodError : org. springframework.http.MediaType.getCharset()Ljava/nio/charset/Charset 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38442676/
我看到 @products 注释允许我传递单个字符串和字符串列表。所以我只是想知道这是如何在java中完成的,如果我需要使用允许以下行为的方法来实现它,我该怎么做?或者这个注释是特定的,所以我们不能在
我需要创建一个 REST 服务(Jersey),它接受 header 为“application/com.foo+xml”(+json,如果是 JSON mime 类型)。 有什么办法可以拥有吗?@P
我有一个使用 XML 和 JSON 的 Web 服务。 输出当前始终采用 XML 格式。 是否可以使用与所使用的 MediaType 相同的 MediaType 生成响应? 我需要的是: 请求是 XM
一旦我得到这个问题 Latest Jersey example does not work 的答案,我就遇到了另一个奇怪的问题: 服务器,GET 方法工作正常。我测试并添加了一些测试代码 hellow
我正在使用 Jersey 启用 JacksonFeature 编写 REST 客户端,用于强制我指定其自定义命名内容类型的 Web 服务,即使它只是常规 JSON。换句话说,当我这样做时: Reque
我正在使用 ReSTLet 来实现一个简单的 RESTful API,它为我提供了一个 org.reSTLet.data.MediaType 作为 ContentType。但是,我正在尝试使用其他一些
我使用 symfony 3.4 和奏鸣曲媒体包。在表单中使用 MediaType 效果很好,如下所示: $this->builder->->add('document', MediaType::cla
我正在使用 ReSTLet 构建某种代理服务器,但是我遇到了一个问题,即没有根据客户端请求自动确定 MediaType 的方法。 这是我的代码: Representation entity = nul
创建多部分/相关请求时。我们需要在 Content-Type 字符串中添加一个额外的 type=MIME_TYPE 内容类型应该是这样的 Content-Type: multipart/related
我的 SpringBoot 应用程序向外部 API 发出 HTTP 请求,所有这些都使用/生成 JSON。默认情况下,我的应用程序使用 Jackson 进行数据绑定(bind),并且所有 HTTP 请
6天前,我问了这个问题: how to select from filtervalues where genre comma delimited values contain only what is
我创建了一个示例客户端/服务器应用程序来熟悉 Spring Webflux/Reactor Netty。现在,当响应包含 Flux 并且媒体类型为“文本/事件流”时,我对客户端的行为有点困惑。我可以看
我有 Spring Rest Controller ,如下: @RestController @RequestMapping(value = "/v1/files") public class Dat
我创建了一个使用 REST 服务器进行 CRUD 操作的 Web 应用程序。我使用 java Jersey 和 gradle。当我执行 POST 操作时,我以 JSON 格式发送对象,如下所示: To
我只使用照片模式,但从 2019 年 Spring 开始,苹果商店要求获得微观许可。当用户只使用照片时,授予 micro 权限会非常困惑。这个问题有什么解决方法吗? 最佳答案 可能需要麦克风权限,因为
我正在构建我的第一个 API。 GET 请求有效,但我陷入了 POST 请求,并出现错误 415 不支持的媒体类型。经过一番查找和重写代码,仍然失败。有人明白为什么吗?参数值为: -String us
我目前正在开发一个由其他团队维护的项目,现在我需要维护它。当我完成该项目时,我发现了以下一些内容: 在 jax-rs Controller 中,它由 @Consumes(MediaType.APPLI
我遇到了一个奇怪的问题。我有一个 Web 项目(java 服务),我用 ANT 构建它。然而由于某些原因,构建系统不得不更改为Maven。 使用 Maven 构建后,我将 war 文件部署到 tomc
我目前正在开发一些 RESTful API 的版本 2,为了保持与版本 1 的兼容性,我想将该版本作为媒体类型参数添加到所有请求/响应中。 版本1:接受:application/json、applic
如何为具有自定义 MediaType 的实体发送 GET 请求? 例如,我想检索 MyUserDTO 并将 MediaType 设置为 application/user+yml。 现在我有两个独立的
我是一名优秀的程序员,十分优秀!