Ошибка в Eclipse о типе, косвенно ссылающемся на требуемый файл .class
У меня есть это исключение с некоторыми заглушками, сгенерированными Axis2:
"Тип org.apache.axiom.om.OMElement не может быть разрешен. косвенно ссылаются на требуемые файлы .class"
Я читал много сообщений и пытался найти решение. До сих пор я нашел добавление библиотеки apache tomcat 5.5 в путь сборки. Он удалил ошибку в java файле, но затем, когда я выполнил любую Java-программу внутри проекта, я получил эту ошибку:
"Запуск myApp" столкнулся с проблемой: произошло исключение выполнение командной строки. Не удается запустить программу "C:\Program Файлы \Java\jdk1.5.0_22\bin\javaw.exe" (в каталоге "D:\Digicel\workspace\Digicel\myClassSample" ): Ошибка CreateProcess = 87, Неверный параметр
то, если я удалю библиотеку apache tomcat из пути сборки, я могу запустить другие java-программы, но не тот, который первоначально упоминался.
Любые мысли об этом?
Ответы
Ответ 1
Хорошо, я нашел причину проблемы с помощью друга:)
Дело в том, что Eclipse знает, что одна из моих зависимостей зависит от другой библиотеки, а Eclipse проверяет ее, когда пытается создать код.
Итак, я попытался проверить, какой файл jar содержит эту библиотеку: "org.apache.axiom.om.OMElement".
Я искал ее и обнаружил, что это "axiom-api-1.2.10.jar", и, наконец, мой файл скомпилирован с ошибками 0.
Он также объяснил мне, что мое первоначальное решение по добавлению библиотеки сервера Tomcat Tomcat добавляет все банки, которые содержат имена с apache tomcat (который является большим списком), и, возможно, конфликт с моим текущим списком мог быть добавленных банок.
Итак, исправление заключалось в том, чтобы найти подходящую банку и добавить ее в проект.
Ответ 2
Эта ошибка также может возникать, когда косвенная зависимость имеет поврежденный файл jar. Это может быть вызвано проблемами в публичном хранилище maven.
Если это так, удалив локальный репозиторий maven для загрузки свежих файлов jar, вы устраните проблему:
rm -Rf ~/.m2/repository/{enter/path/to/broken/stuff}