Ошибка NoClassDefFoundError для ресурса в пути сборки

#java #spring #eclipse #build #ignite

#java #весна #затмение #строить #воспламенить

Вопрос:

Я пытаюсь добавить add Apache Ignite в существующий CSV-проект, созданный с помощью ant (ни одна из этих вещей не находится под моим контролем) в Eclipse.

Я добавил следующие банки в путь сборки:

  • cache-api-1.1.1.jar
  • ignite-core-2.9.1.jar
  • ignite-core-2.9.1-javadoc.jar
  • ignite-core-2.9.1-sources.jar
  • ignite-spring-2.9.1
  • ignite-spring-2.9.1-javadoc -ignite-spring-2.9.1-исходные тексты

Я могу импортировать то, что мне нужно, из Ignite в Eclipse, и проект соответствует требованиям без ошибок, но когда я захожу, чтобы запустить соответствующее приложение, я получаю следующую ошибку:

орг.пружинный каркас.фасоль.фабрика.Исключение BeanCreationException: ошибка при создании компонента с именем ‘xxxx’, определенным в ресурсе пути к классу [yyyyy.xml ]: Не удалось создать экземпляр компонента; вложенным исключением является org.springframework.beans.Исключение BeanInstantiationException: не удалось создать экземпляр [xxxx]: конструктор вызвал исключение; вложенным исключением является java.lang.Ошибка NoClassDefFoundError: org/apache/ignite/spi/discovery/tcp / ipfinder/TcpDiscoveryIpFinder …. вызвано: Конструктор вызвал исключение; вложенным исключением является java.lang.Ошибка NoClassDefFoundError: org/apache/ignite/spi/discovery/tcp/ipfinder/TcpDiscoveryIpFinder

Однако в Eclipse в обозревателе проектов я могу расширить библиотеки, на которые ссылаются ->ignite-core-2.9.1.jar и смотрите spi.discovery/tcp / ipfinder/TcpDiscoveryIpFinder

В качестве дополнительного дополнения класс, который не удалось создать, даже не использует Ignite или TcpDiscoveryIpFinder.

Этот процесс работал в прошлом для добавления в проект таких вещей, как Mockito, но не в этом случае.

Ответ №1:

Хорошо, подумав еще немного, я понял, что мне нужно добавить банки ignite в apache-tomcat / lib.

Это решило проблему.

Что касается причины, по которой этого раньше не происходило с Mokito, то все модульные тесты выполняются только в Eclipse, а не в реальном приложении.