`
y806839048
  • 浏览: 1107441 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

一个请求的调用过程栈解析:

阅读更多

 

先创建一个任务线程--》放入tomcat线程池--》发起tomcat http协议--》tomcat认证--》进入错误页面过滤器--》进入起始过滤器--》进入上下文调用链--》走完调用链--》包装http协议请求

--》请求分发--》mvc (url和方法)Mapping--》反射机制调用方法--》进入切面--》切面执行完成之后继续执行反射方法调用

 

 

 

 

 

[2018-08-29 10:29:54,575] - [http-apr-8081-exec-5 ] |-ERROR HttpClientUtil.java[49]          - [IP:localhost,PORT:8081,URI:/bank-api/openapi/notify,TYPE:POST,APPLYNO:] HTTP POST 异常 : 

java.net.SocketTimeoutException: Read timed out

at java.net.SocketInputStream.socketRead0(Native Method)

at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)

at java.net.SocketInputStream.read(SocketInputStream.java:171)

at java.net.SocketInputStream.read(SocketInputStream.java:141)

at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)

at java.io.BufferedInputStream.read1(BufferedInputStream.java:286)

at java.io.BufferedInputStream.read(BufferedInputStream.java:345)

at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:735)

at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:678)

at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1569)

at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1474)

at com.houbank.bank.util.base.HttpClientUtil.httpJsonPost(HttpClientUtil.java:46)

at com.houbank.bank.facade.facades.AbstractFacadeExchange.callBack(AbstractFacadeExchange.java:34)

at com.houbank.bank.facade.facades.AbstractFacadeExchange.receive(AbstractFacadeExchange.java:64)

at com.houbank.bank.facade.controller.callback.suisj.SuisjCallBackController.notify(SuisjCallBackController.java:154)               切面执行完成之后继续执行反射方法调用

at com.houbank.bank.facade.controller.callback.suisj.SuisjCallBackController.notifywithholdresult(SuisjCallBackController.java:126)

at com.houbank.bank.facade.controller.callback.suisj.SuisjCallBackController$$FastClassBySpringCGLIB$$4f3c35e5.invoke(<generated>)

at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)

at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:721)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)

at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:85)

at com.houbank.bank.facade.util.log.AbstractLogAspect.logMethodArgsReturn(AbstractLogAspect.java:65)

at com.houbank.bank.facade.util.log.ControllerLogAspect.notifyCreditAccountStatusFail(ControllerLogAspect.java:52)                      进入切面

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)                                                                          反射机制调用方法

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:629)

at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:618)

at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)

at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)

at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:656)

at com.houbank.bank.facade.controller.callback.suisj.SuisjCallBackController$$EnhancerBySpringCGLIB$$b6d2b71d.notifywithholdresult(<generated>)  mapping反射成代理类

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)

at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)

at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:116)

at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)   mvc (url和方法)Mapping

at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)

at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)

at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963)

at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)       请求分发

at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)

at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)

at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)                                       包装http协议请求

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)  走完调用链

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:105)

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)          

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)  进入上下文调用链

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

at org.springframework.boot.web.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:115)

at org.springframework.boot.web.support.ErrorPageFilter.access$000(ErrorPageFilter.java:59)

at org.springframework.boot.web.support.ErrorPageFilter$1.doFilterInternal(ErrorPageFilter.java:90)   

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)        进入起始过滤器

at org.springframework.boot.web.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:108)        进入错误页面过滤器

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110)         

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:506)    tomcat认证

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)

at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:962)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445)

at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1115)

at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)    发起tomcat http协议

at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2549)

at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2538)   

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)      

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)     放入线程池

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)   先创建一个任务线程

at java.lang.Thread.run(Thread.java:748)

 

 

 

分享到:
评论

相关推荐

    osip2协议栈解析

    OSIP2协议栈是一个使用C语言编写的开源SIP协议栈,它在开源协议栈中属于较为罕见的使用C语言实现的项目。它的核心功能在于对SIP协议数据的解析以及事务管理,但是不包括数据包的收发、RTP流的处理等其他功能,需要...

    c++调用webservice(包括静态和动态以及webservice源码)

    例如,可以使用gsoap库,这是一个广泛使用的C和C++的SOAP绑定工具。gsoap生成C++类和函数,这些类和函数可以直接在C++代码中调用来访问WebService。开发者需要先从WSDL文件生成gsoap的输入文件,然后使用gsoap工具...

    一个c#开发的dns协议解析包 可以生成查询请求,接收返回的数据.rar

    网络中,网站的IP地址很难让人去记住,一般都是使用域名去访问,因此就有了DNS服务器,根据IP...发送这个过程并不是解析器来执行的,而是委托给了操作系统内部的协议栈去做处理,协议栈通过网卡将消息发送给DNS服务器。

    Dwrweb服务的ajax请求数据直接调用javaDAO类返回JSON数据。取值方便。快捷

    DWR在服务器端运行一个Servlet,这个Servlet负责接收JavaScript的请求,然后转发到指定的Java类方法。在客户端,DWR提供了一组JavaScript API,使得开发者可以方便地发起异步请求,并处理服务器返回的数据。这极大地...

    python爬虫基础知识、爬虫实例、反爬机制包含技术栈、对象和爬虫使用及环境依赖构建

    技术栈: HTTP请求库: 使用requests库发送HTTP请求。 解析库: 使用BeautifulSoup解析HTML。 数据存储: 将数据存储为JSON格式。 环境依赖构建: 使用Anaconda创建Python虚拟环境。 对象: MovieSpider类: 包含爬虫的...

    java调用C++ webservice

    在IT行业中,跨语言通信是常见的需求,尤其是在Java和C++这样...总之,Java调用C++ Web服务是一个涉及到多种技术栈的过程,包括WSDL解析、SOAP通信、跨语言数据映射等。理解这些概念并熟练应用是实现跨语言通信的关键。

    Java调用jpcap获取本机所有get请求

    Java调用jpcap库获取本机所有GET请求是一个实用的技术点,特别是在网络监控、数据分析或者测试场景下。jpcap是一个开源的Java库,它提供了对网络接口数据包捕获和分析的能力,类似于C语言的libpcap库。下面我们将...

    完整的接口调用实例,包括请求类、返回实体类、接口调用、接口处理文件

    本实例涉及的是一个基于C#语言的接口开发,提供了从请求到响应的完整流程。以下将详细阐述这个"完整的接口调用实例"中包含的主要知识点: 1. **接口设计**: 接口设计是软件开发中的重要组成部分,它定义了服务...

    linux TCP IP协议栈源码解析

    Linux TCP/IP协议栈是Linux操作系统的核心组成部分,负责网络通信,实现了Internet协议族的主要协议,包括TCP(传输控制协议)和IP...阅读《Linux TCP/IP协议栈源码解析》文档,将有助于全面了解这一复杂的系统组件。

    几种调用WebService的方法

    2. **打开连接**:使用`xmlhttp.Open("POST", URL, false)`方法打开一个到指定URL的POST请求连接。参数`false`表示同步请求,即执行完此方法后会等待服务器响应。 3. **设置请求头**: - `xmlhttp....

    webservice测试调用工具

    7. **调试功能**:设置断点,查看调用栈,分析请求和响应的详细过程。 8. **性能测试**:测量接口的响应时间,评估服务性能。 9. **安全检查**:检查接口的安全性,如防止SQL注入、XSS攻击等。 10. **文档生成**:...

    基于微信支付javaSDK的接口层封装(技术栈:springboot).zip

    URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的...

    WebService调用的几种方式

    3. HttpClient:Apache HttpClient是一个通用的HTTP客户端库,虽然不是专门设计用于调用Web服务,但可以用于构建自定义的SOAP或REST请求。使用HttpClient,你可以直接构造HTTP请求,并发送XML数据作为请求体,然后...

    监听WebMail发信交互过程

    在该实验中,选用的工具是Libnids,这是一个基于libpcap和libnet的网络入侵检测开发包,其功能是模仿Linux内核中的TCP/IP协议栈,特别之处在于它支持TCP数据流的重组,这对于解析分段的TCP数据包至关重要。...

    VolleyDemo1--网络请求.rar

    Volley是Google推出的一款高效的Android网络请求库,它在2013年的I/O大会上首次亮相,设计目标是提供一个轻量级、快速且易于使用的网络请求框架。Volley特别适合处理频繁的短请求,例如在新闻应用或者社交应用中加载...

    操作系统笔试题(2)

    - **解析:** 地址转换的核心在于将逻辑地址映射到物理地址,这个过程主要依赖于页表中的页表项来完成。 ### 3. 文件系统 **251.** 在文件系统中,文件的顺序访问指的是: - **答案:** A(按顺序读写) - **解析...

    深入理解linux内核中文第三版-第10章

    6. **用户态与内核态转换**:系统调用涉及到用户态到内核态的转换,这个过程涉及到寄存器的保存、栈的切换以及权限级别的改变,以确保安全和效率。 7. **系统调用接口**:在C语言环境中,系统调用通常是通过标准的...

    VC++使用gsoap调用WebService接口

    本文将深入探讨如何使用VC++通过gSOAP库来调用WebService接口,结合提供的资源,包括"使用方法.doc"、"gsoap-2.8ok.rar"、"VC++使用gsoap调用webservice接口.rar"以及"HelpFile.txt",我们将逐步解析这个过程。...

    栈和队列的算法以及应用

    使用栈跟踪线程调用栈。 通过学习栈和队列的算法及其应用,我们可以更好地理解和掌握这两种数据结构的特点和应用场景。在实际开发中,合理选择合适的数据结构可以极大地提高程序的效率和可维护性。

    DELPHI调用有道 API 翻译(xml方式)

    这个过程涉及到网络通信、API调用以及XML数据的解析等关键知识点。 首先,你需要在有道API官网注册并申请API密钥,这是调用任何API服务的基础。API密钥通常包括一个AppID和一个AppKey,它们是服务提供商识别你的...

Global site tag (gtag.js) - Google Analytics