在tomcat上远程调试基于Spring的Web应用程序时找不到源

时间:2014-05-08 05:22:14

标签: eclipse spring tomcat remote-debugging jpda

我有一个在Tomcat上运行的基于Spring的Web应用程序,我希望在Eclipse中进行调试。 我设法在调试模式(JPDA)下运行Tomcat。但我遇到未找到来源错误。

我之前看过类似的问题,但我找不到确切的答案。

未找到来源的堆栈跟踪是

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  

课程SpringTestServiceSpringTestManagerSpringTestActionSpringTestFormSpringTestVO由我撰写。

无法在Spring库中找到Cglib2AopProxy$DynamicAdvisedInterceptor的源代码。

我在创建调试配置时在“源文件夹”中添加了所需的库和JAR以及项目。

3 个答案:

答案 0 :(得分:0)

您的stacktrace中没有源的行,实际上有源。

它们是由原始字节码生成的,由cglib操纵 - 显然是为了对代码实现AspectJ增强。

这是让库神奇地将代码转化为背后的缺点之一。

答案 1 :(得分:0)

您的SpringTestService是否实现了任何接口?如果不是Spring将尝试使用cglib来创建代理和autowire。为此,您的应用程序需要cglib(http://mvnrepository.com/artifact/cglib/cglib)依赖项。你可以尝试一下吗?或者,如果您的服务和dao没有实现任何接口,那么一般来说,即使您只有一个实现,也可以使用接口。

答案 2 :(得分:0)

我知道它过去很久了,但这个问题是由tomcat引起的。 你将不得不停止你的tomcat服务器双击它。 1.单击打开启动配置 2.转到classpath选项卡 3.单击添加外部JAR 4.从tomcatdirectory \ bin文件夹中选择commons-daemon.jar和tomcat-juli.jar 5.再次在调试中运行它,你不会看到错误......