Не удается найти источник для конкретного jar / класса при отладке Tomcat в Eclipse - PullRequest
2 голосов
/ 21 сентября 2010

Я довольно новичок в разработке java / eclipse, и у меня возникла проблема с отладкой кода из определенного jar-файла в веб-приложении, которое использует моя компания.

Прежде всего, я правильно настроил Tomcat и могу успешно запустить веб-приложение (кроме ошибки, которую я пытаюсь найти!). В каталоге lib для веб-приложения есть около двух десятков jar-файлов, и когда я пытался отлаживать файлы в других jar-файлах, отладчик правильно распознает их точки останова, и все устраивает. Точки останова, которые я установил в коде в новом jar-файле, пропускаются, и когда я ловлю точку останова дальше по стеку отладки, любая попытка щелкнуть по интересующему меня классу приводит к «Source not found».

Я нажимаю кнопку «Изменить путь поиска источника ...», щелкаю проект, содержащий код, и он просто возвращает меня к ошибке «Источник не найден». Я попытался настроить путь поиска как в виде проекта, так и в качестве каталога файловой системы и проекта рабочей области. Один и тот же результат каждый раз.

Я немного не уверен, как именно отладчик связывает конкретный вызов функции в окне стека отладки с исходным кодом - он просто основан на пакете и имени класса файла курса? Если так, я не понимаю, почему это не сработает.

Есть идеи?

Ответы [ 3 ]

0 голосов
/ 28 сентября 2010

Оказывается, мне не хватало того факта, что проект был переименован, перемещен в другое хранилище и имел почти идентичное имя пакета ... оперативное слово "почти".Спасибо Locka за единственный ответ!

com.companyname.java.x.y.z.classname != com.companyname.java.y.z.classname
0 голосов
/ 12 июля 2013

У меня есть предложение Чтобы решить вашу проблему другим способом: если вы хотите отлаживать что-то, что не включает в себя tomcat lib или другую привязку lib к Tomcat, например struts2, которые должны обрабатывать запрос и ответ.

пожалуйстазапустить программу в основной функции, даже если вы используете пружину;

public static void main(String[] args) { 

    ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
                    "classpath*:/applicationContext.*.xml"); // check your applicationCntext formate , maybe applicationContext-*.xml ;

    context.afterPropertiesSet();
    find(context);
}
private static void find(ClassPathXmlApplicationContext context) {

    Map beans = getContext().getBeansOfType(SomeCLass.class);
 SomeCLass   bean=beans.values().iterator().next();
bean.callFunction();

} 
0 голосов
/ 22 сентября 2010

Убедитесь, что вы указываете на правильный каталог. Если класс был com.foo.SomeClass, вам нужно установить каталог src в базовый каталог, чтобы Eclipse мог найти $ basedir / com / foo / SomeClass.java. Это не обязательно корень проекта, это может быть $ project / src или даже $ project / src / main / java для проектов Maven.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...