Исходный код не найден во время веб-приложения Spring Debugging на основе tomcat

У меня есть веб-приложение на базе Spring, работающее на Tomcat, которое я хочу отлаживать в Eclipse. Мне удалось запустить Tomcat в режиме отладки (JPDA). Но я столкнулся с ошибкой Источник не найден.

Я видел подобные вопросы, заданные ранее, но я не мог найти точный ответ.

Трассировка стека, где встречается источник не найден

Daemon Thread [http-8080-3] (Suspended) 
    Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Object, Method, Object[], MethodProxy) line: 602 
    SpringTestService$$EnhancerByCGLIB$$2f23d34d.update(SpringTestVO) line: not available   
    SpringTestManager.update(SpringTestForm) line: 65   
    SpringTestAction.doExecute(ActionMapping, ActionForm) line: 65  
    SpringTestAction(BaseAction).execute(ActionMapping, ActionForm, HttpServletRequest, HttpServletResponse) line: 196  
    DelegatingActionProxy.execute(ActionMapping, ActionForm, HttpServletRequest, HttpServletResponse) line: 106 
    TilesRequestProcessor(RequestProcessor).processActionPerform(HttpServletRequest, HttpServletResponse, Action, ActionForm, ActionMapping) line: 419  
    TilesRequestProcessor(RequestProcessor).process(HttpServletRequest, HttpServletResponse) line: 224  
    ActionServlet.process(HttpServletRequest, HttpServletResponse) line: 1196   
    ActionServlet.doPost(HttpServletRequest, HttpServletResponse) line: 432 
    ActionServlet(HttpServlet).service(HttpServletRequest, HttpServletResponse) line: 637   
    ActionServlet(HttpServlet).service(ServletRequest, ServletResponse) line: 717   
    ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 290  
    ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 206  
    StandardWrapperValve.invoke(Request, Response) line: 233    
    StandardContextValve.invoke(Request, Response) line: 191    
    StandardHostValve.invoke(Request, Response) line: 127   
    ErrorReportValve.invoke(Request, Response) line: 103    
    StandardEngineValve.invoke(Request, Response) line: 109 
    CoyoteAdapter.service(Request, Response) line: 293  
    Http11Processor.process(Socket) line: 861   
    Http11Protocol$Http11ConnectionHandler.process(Socket) line: 606    
    JIoEndpoint$Worker.run() line: 489  
    Thread.run() line: 662  

Классы SpringTestService, SpringTestManager, SpringTestAction, SpringTestForm а также SpringTestVO написаны мной.

Невозможно найти источник для Cglib2AopProxy$DynamicAdvisedInterceptor, который находится в библиотеке Spring.

Я добавил необходимые библиотеки и JAR-файлы и проекты в папку "Source" при создании отладочных конфигураций.

3 ответа

Ваш SpringTestService реализует какой-либо интерфейс? Если нет, Spring попытается использовать cglib для создания прокси и autowire. Для этого вашему приложению требуется зависимость cglib ( http://mvnrepository.com/artifact/cglib/cglib). Можешь попробовать? Или, если ваш сервис и дао не реализуют какой-либо интерфейс, то в общем случае неплохо бы иметь интерфейс, даже если у вас есть только одна реализация.

Я знаю его прошлое долгое время, но эта проблема вызвана котом. вам придется остановить свой сервер Tomcat, дважды щелкните по нему. 1. щелкните по открытой конфигурации запуска 2. перейдите на вкладку classpath 3. щелкните по добавлению External Jars 4. Выберите commons-daemon.jar и tomcat-juli.jar из папки tomcatdirectory\bin 5. снова запустите его в режиме отладки, и вы выиграли ' не вижу ошибки...

Строки в вашей трассировке стека, у которых нет источника, на самом деле не имеют источника.

Они генерируются из необработанного байт-кода, которым манипулирует cglib - по-видимому, для реализации улучшения AspectJ в вашем коде.

Это один из недостатков того, что библиотеки магически преобразуют ваш код за вашей спиной.

Другие вопросы по тегам