我有一个在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
课程SpringTestService
,SpringTestManager
,SpringTestAction
,SpringTestForm
和SpringTestVO
由我撰写。
无法在Spring库中找到Cglib2AopProxy$DynamicAdvisedInterceptor
的源代码。
我在创建调试配置时在“源文件夹”中添加了所需的库和JAR以及项目。
答案 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.再次在调试中运行它,你不会看到错误......