2016-07-18 3 views
5

При попытке запустить мои TestNG тесты через ant я получаю java.lang.NoSuchMethodError: org.springframework.http.MediaType.getCharset()Ljava/nio/charset/Charset (см ниже полного исключения)java.lang.NoSuchMethodError: org.springframework.http.MediaType.getCharset() Ljava/NiO/кодировка/Charset

У меня нет проблем с компиляцией или запуском моего веб-приложения, но я не могу запускать тесты через ant. Я уверен, что это проблема загрузки классов, но не уверен, что загрузка класса заказа должна выполняться во время выполнения. Я использую Spring 4.3.1 и Spring Security 4.1.1.

Есть ли конкретный заказ для загрузки моих банок, чтобы использовать «правильную» версию 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. 
+0

Это похоже на несоответствие версии Java – paulsm4

+0

@ paulsm4 - мои '$ {ant.java.version}' и '$ {java.version}' отображаются как '1.7' и' 1.7.0_80'. Мой '$ JAVA_HOME' отображается как'/usr/lib/jvm/java-7-oracle' - какие другие места мне нужны для проверки версий Java? –

+0

Вы пробовали очистить и построить свой проект? –

ответ

5

Невероятный ... сорванный по классу вопросов по загрузке еще раз ... Убер-банка с именем activemq-minimal-5.13.3.jar имела ссылки на spring банки, в которых возник конфликт. activemq-minimal-5.13.3.jar подходит к spring в алфавитном порядке, так что классы в этом activemq jar загружались/использовались по spring банкам. Обновлен мой муравей, чтобы сначала загрузить классы spring, и теперь я все настроен.

Как я узнал, я собрал все свои сторонние библиотеки в проекте «Тест» и добавил/удалил банки (с некоторым наклоном, где была проблема), пока я не смог определить, где класс проблема с загрузкой был.

+0

Благодарим за обновление! Пожалуйста, примите ваше решение. – paulsm4

1

org.springframework.http.MediaType.getCharset() был введен с 4,3, если ява не нашел, что означает, что у вас есть версия весна-жильный ниже 4.3.1 в вашем пути к классам, которые загружаются и используются.
Не могли бы вы поделиться содержимым своего каталога lib?

Смежные вопросы