0

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

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

Source not found发生的堆栈跟踪是

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和由我编写SpringTestFormSpringTestVO

它无法找到Cglib2AopProxy$DynamicAdvisedInterceptorSpring 库中的源代码。

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

4

3 回答 3

0

你的堆栈跟踪中没有源的行,真的没有源。

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

这是让库在背后神奇地转换代码的缺点之一。

于 2014-05-14T08:51:53.073 回答
0

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

于 2014-05-14T17:01:33.473 回答
0

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

于 2016-01-05T14:25:36.327 回答