400 600 5039
EN
首页 > 产品目录

JW-TB系列

比表面积及孔径分析仪
比表面积、孔隙率、化学吸附和程序升温方法
    • 孔径范围:0.35nm-500nm
    • 比表面范围:0.0005m-/g-无上限
    • 中值孔径重复性(SD):≤0.02nm
    • 比表面重复性(RSD):+1%
功能配置
规格参数
测试数据
应用资源
配置选项
配件耗材
技术优越性

独有的Vtech技术融合了Vspace冷自由空间控制技术、Vlevel液氮面控制技术、Vstable稳定测试技术、Vctrl防抽飞控制技术,使得TB系列产品的测试效率更高,测试结果更重复、更稳定,更能满足大孔材料的测试需求。

Vctrl防抽飞控制技术

采用独有的Vctrl防抽飞控制技术,软硬件结合控制防止样品被抽飞的同时,保证测试效率,避免测试过程中因样品抽飞导致的仪器气路污染,保护仪器运行安全。

Vspace冷自由空间控制技术

采用独有的Vspace技术确保测试过程中整个系统的冷自由空间不发生变化,保证分析结果的准确性、重复性和稳定性。

Vstable稳定测试技术

采用独有的Vstable控制技术保证测试的稳定性和准确性,使白炭黑、氧化铝等大孔材料的分析准确性更高、重复性和稳定性更好,真正实现50nm以上材料的孔径分析。保护仪器运行安全

Vlevel液氮面控制技术

自主研发的大容量玻璃杜瓦瓶,与普通玻璃杜瓦瓶吹气工艺不同,采用自主研发工艺制成,由特殊材料制备,克服了吹气导致薄厚不均匀产生应力的缺陷,不易碎,使用安全,且能长时间保证较高真空度,使用寿命长。

产品特点

测试效率高

可同时进行最多四个样品分析,采用独有的Vtech控制技术,使BET比表面积测试效率最高达20min/样,满足生产、科研等领域中对测试量需求比较大的客户的使用要求。

低温冷浴系统

用户可选配低温冷浴系统,Sync软件具有兼容低温冷浴的设置,方便用户测试不同温度下的吸附等温线。

实时监测P0

配置独立的P0传感器,实现测试过程中实时监测p0,消除环境温度和大气压对实验结果产生的影响。

运行状态直观显示

仪器前面板上配置状态显示系统,显示仪器的工作原理图,每个阀位增加LED灯指示电磁阀的通断,在实验过程中可直观判断仪器的运行过程。

可集联与远程访问

仪器通讯接口为LAN口,可实现一台电脑作为上位机集联控制,可远程访问和控制该上位机电脑。

独立真空脱气系统

标配完全独立的真空脱气系统,可同时进行4个样品的抽真空加热脱气预处理。样品脱气的同时,TB仪器主机可进行另外样品的吸附测试,测试效率高。

安全防护机制

为保证用户的使用安全,
(1) 开发出独立运行的安全保护软件,可远程监控仪器的运行状况,当仪器出现压力异常等危险时,自动控制仪器,解除产生危险的异常状况,保护仪器和操作人员的安全。
(2) 增加杜瓦瓶保护罩,防止仪器运行过程中液氮等低温液体外溅产生危险。

多路进气

用户可选配多路进气选件,方便用户进行多种吸附气体的自由切换。

工作站可选用户可选配4、8、12工作站,提高测试效率。

TB400多站

分析软件

全新开发的Sync控制软件在Windows平台上实现操作控制、数据采集、计算分析和报告预览的智能化软件,具有独有的实验监测功能。

压力平衡

采用独特的吸附平衡压力智能判断与控制法,在保证充分吸附平衡的条件下,测试效率远高于定点法。
软件有独立的界面实时显示每个样品的吸附平衡过程,可实时了解样品的吸附特性,帮助分析样品吸附过程中产生的漏气、预处理不干净等异常现象,监控实验过程中仪器的运行状况。

TB400软件-压力平衡

吸附等温线

软件有独立的界面实时显示每个样品的吸附等温线,可实时查看实验进度和吸附结果,帮助判断是否出现漏气、冷自由空间变化等实验异常现象。

TB400软件-吸附等温线

手动控制

区别于其他的手动开关阀门控制,Sync软件提供一系列组合式自动控制流程,方便用户进行多种目的的手动操作,大大降低手动操作产生故障的概率。
用户在测试过程中可直观观察仪器内部各部位压力变化和阀门状态,便于用户了解测试过程,同时便于工程师远程诊断与维护。
长时间实验后,软件提供加液氮的自动流程,用户可根据提示安全添加液氮,期间测试过程自动暂停和恢复,无需人为判断,自动化程度高。

TB400软件-手动控制

仪器控制过程实时记录储存

Message窗口可切换显示,实时记录仪器实验控制过程和软件手动操作信息,方便工程师对异常数据的分析和远程诊断。

TB400软件-记录存储

数据分析

完整的物理吸附计算模型供灵活选择,包括:
-等温吸脱附曲线;
-BET比表面积(单点、多点);
-Langmuir表面积;
-外表面积(STSA);
-BJH孔径分析;
-t-plot分析;
-DR、DA、MP方法;
-HK孔径分析;
-SF孔径分析;
-NLDFT孔径分布;
-最可几孔径、平均孔径、总孔体积;
-吸附曲线、吸附热计算,等等;

性能参数
型号TB200TB400
测试原理静态容量法气体吸附
吸附质气体N2、Ar、Kr、H2、O2、CO2、CO、NH3、CH4等非腐蚀性气体
分析口1-4个样品同时测试
压力传感器1000torr,2只1000torr,4只
相对压力P/P0范围10-5 - 0.998
比表面积范围0.0005m2/g至未知上限;标准样品重复性(RSD)≤± 1.0%;
孔径范围0.35nm-500nm;介孔和大孔的精确分析;
孔径重复性(SD)≤0.2nm;
孔体积范围0.0001cm3/g
脱气站标配外置式4站真空加热脱气机,最高温度400℃
脱气温度室温—400℃,精度±1℃
真空泵双级旋片式机械真空泵,极限真空6.7*10-1Pa
主机规格长510mm×宽530mm×高930mm,重量约40 Kg
环境温度要求15-35℃
环境湿度要求20%-80%,不发生冷凝的环境湿度
电源要求交流220V±20V,50/60HZ,最大功率300W;
推荐应用领域电池正负极材料,淀粉等药物辅料,炭黑、白炭黑、钛白粉等多孔粉体;
氧化铝、分子筛等催化材料;
活性炭、沸石等吸附材料;
典型案例
/upload/image/2025-11/col309/1762476160431.png

BET比表面积重复性<1% 图1

/upload/image/2025-11/col309/1762476185578.png

BET比表面积重复性<1% 图2

/upload/image/2025-11/col309/1762476249830.png

BET比表面积重复性<1% 图3

/upload/image/2025-11/col309/1762476218625.png

BET比表面积重复性<1% 图4

应用资源


产品手册
客户论文
解决方案
DX 400比表面积分析仪操作手册说明
应用领域:
全部 电池与储能材料 吸附与催化材料 半导体与陶瓷材料 矿产与地质材料 食品与生物医药 环境科学 金属与无机非金属 高分子与复合材料
白炭黑行业解读
白炭黑行业解读
众所周知,二氧化硅在自然界中分布极广。天然产物包括沙子、水晶、石英砂、硅微粉、硅藻土等,自古代起,人们就开始对泥土沙石中的二氧化硅稳定的化学性能在建筑、器具加工等领域加以利用,但不管是直接使用还是经过简单的加工处理,其物化性能都不能算优异,因此天然产物的应用领域相对有限,更无法跟上社会进步的发展步伐。现在用途最广的是化学制备的二氧化硅产品——白炭黑。工业合成的二氧化硅按其生产技术的不同可分为两个大的类别,一种是沉淀法白炭黑,另一种则是气相法白炭黑。
正负极材料比表面积测试,为手机锂离子电池保驾护航
正负极材料比表面积测试,为手机锂离子电池保驾护航
如何才能增加手机锂电池容量。在其生产研发过程中,比表面积测定是不可或缺的技术,因为没有比表面积测试技术的发展和支持,手机电池研发或许还处在盲人摸象的阶段。
烟气脱硫用氢氧化钙的比表面积分析方法研究
烟气脱硫用氢氧化钙的比表面积分析方法研究
化石燃料,焦化行业,钢铁行业,电厂等大量产生的SO2和NOx等有害气体被排放到大气中,严重危害着人类的健康。2020年,SO2和NOx的排放量分别为1598吨和1562吨。“十三五”生态环境保护指标中规定:要求在重点地区重点行业SO2排放总量下降10%以上。因此,如何有效地去除烟气中的 SO2便成众多科学家的研究目标。
氮化硅陶瓷粉体比表面积测试方法探究
氮化硅陶瓷粉体比表面积测试方法探究
随着科学技术的发展,不同行业对新型材料的需求也日益增加。由于金属材料的自身局限性,在一些领域无法满足工业发展要求,正逐步被结构陶瓷材料所替代。氮化硅陶瓷以其优异的机械性(高硬度、高强度和高韧性)、自润滑性、耐高温性及化学稳定性(耐酸碱和金属熔体侵蚀),同时具有优良的透明性和透波性,广泛应用于机械、汽车、航空、电子等领域,如切削刀具、陶瓷轴承、涡轮转子以及散热基板等。
比表面测试仪|三元材料比表面测试方法及数据对比|材料分析
比表面测试仪|三元材料比表面测试方法及数据对比|材料分析
当今社会,新能源行业快速发展,牵动电池行业也初步进入了革新的浪潮。锂电池是目前为止受关注程度最高的一类新型电池,其具备电压高、比能量、储存寿命长、高低温性能稳定的优点,但其相对较低的性价比和安全性也一直为人所诟病。在锂离子电池中,正极材料的性能直接影响到电池的性能,其成本的控制也决定电池成本高低。所以,寻找更高性能与性价比的电极材料早已成为了锂电池更新换代的重中之重。
比表面积仪|关于水泥材料比表面积的测定方法的讨论
比表面积仪|关于水泥材料比表面积的测定方法的讨论
本文从水泥材料的特性入手,通过引入GB/T8074-2008《水泥比表面积测定方法(勃氏法)》、GB/T208-2014《水泥密度测定方法》等国家标准及JC/T956-2014《勃氏透气仪》行业标准,对水泥材料的比表面测试方法进行介绍,并对BET氮吸附法测比表面进行对比和分析,总结各自特点,为今后不同材料的比表面测定提供理论支持。
FreeMarker template error (DEBUG mode; use RETHROW in production!): For "#if" condition: Expected a boolean, but this has evaluated to a number (wrapper: f.t.SimpleNumber): ==> typeIndex [in template "default/01_product_detail.shtml" at line 1376, column 18] ---- FTL stack trace ("~" means nesting-related): - Failed at: #if typeIndex [in template "default/01_product_detail.shtml" at line 1376, column 13] - Reached through: @wtl_list columnId="121" where="MAIN_... [in template "default/01_product_detail.shtml" at line 1373, column 13] - Reached through: @wtl_list columnId="121" sql="SELECT ... [in template "default/01_product_detail.shtml" at line 1365, column 5] - Reached through: @wtl_list columnId="121" sql="SELECT ... [in template "default/01_product_detail.shtml" at line 1348, column 1] - Reached through: @wtl_info columnId="${columnId}" info... [in template "default/01_product_detail.shtml" at line 276, column 5] ---- Java stack trace (for programmers): ---- freemarker.core.NonBooleanException: [... Exception message was already printed; see it above ...] at freemarker.core.Expression.modelToBoolean(Expression.java:179) at freemarker.core.Expression.evalToBoolean(Expression.java:162) at freemarker.core.Expression.evalToBoolean(Expression.java:147) at freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:48) at freemarker.core.Environment.visit(Environment.java:330) at freemarker.core.Environment.visit(Environment.java:372) at freemarker.core.Environment$NestedElementTemplateDirectiveBody.render(Environment.java:2900) at com.whir.tags.directive.tags.ListTag.execute(ListTag.java:322) at freemarker.core.Environment.visit(Environment.java:445) at freemarker.core.UnifiedCall.accept(UnifiedCall.java:101) at freemarker.core.Environment.visit(Environment.java:366) at freemarker.core.IteratorBlock$IterationContext.executedNestedContentForCollOrSeqListing(IteratorBlock.java:317) at freemarker.core.IteratorBlock$IterationContext.executeNestedContent(IteratorBlock.java:271) at freemarker.core.IteratorBlock$IterationContext.accept(IteratorBlock.java:242) at freemarker.core.Environment.visitIteratorBlock(Environment.java:642) at freemarker.core.IteratorBlock.acceptWithResult(IteratorBlock.java:107) at freemarker.core.IteratorBlock.accept(IteratorBlock.java:93) at freemarker.core.Environment.visit(Environment.java:366) at freemarker.core.IteratorBlock$IterationContext.executedNestedContentForCollOrSeqListing(IteratorBlock.java:317) at freemarker.core.IteratorBlock$IterationContext.executeNestedContent(IteratorBlock.java:271) at freemarker.core.IteratorBlock$IterationContext.accept(IteratorBlock.java:242) at freemarker.core.Environment.visitIteratorBlock(Environment.java:642) at freemarker.core.IteratorBlock.acceptWithResult(IteratorBlock.java:107) at freemarker.core.IteratorBlock.accept(IteratorBlock.java:93) at freemarker.core.Environment.visit(Environment.java:330) at freemarker.core.Environment.visit(Environment.java:372) at freemarker.core.Environment$NestedElementTemplateDirectiveBody.render(Environment.java:2900) at com.whir.tags.directive.tags.ListTag.execute(ListTag.java:322) at freemarker.core.Environment.visit(Environment.java:445) at freemarker.core.UnifiedCall.accept(UnifiedCall.java:101) at freemarker.core.Environment.visit(Environment.java:330) at freemarker.core.Environment.visit(Environment.java:336) at freemarker.core.Environment.visit(Environment.java:372) at freemarker.core.Environment$NestedElementTemplateDirectiveBody.render(Environment.java:2900) at com.whir.tags.directive.tags.ListTag.execute(ListTag.java:322) at freemarker.core.Environment.visit(Environment.java:445) at freemarker.core.UnifiedCall.accept(UnifiedCall.java:101) at freemarker.core.Environment.visit(Environment.java:330) at freemarker.core.Environment.visit(Environment.java:372) at freemarker.core.Environment$NestedElementTemplateDirectiveBody.render(Environment.java:2900) at com.whir.tags.directive.tags.InfoTag.execute(InfoTag.java:328) at freemarker.core.Environment.visit(Environment.java:445) at freemarker.core.UnifiedCall.accept(UnifiedCall.java:101) at freemarker.core.Environment.visit(Environment.java:330) at freemarker.core.Environment.visit(Environment.java:336) at freemarker.core.Environment.process(Environment.java:309) at freemarker.template.Template.process(Template.java:384) at org.springframework.web.servlet.view.freemarker.FreeMarkerView.processTemplate(FreeMarkerView.java:396) at org.springframework.web.servlet.view.freemarker.FreeMarkerView.doRender(FreeMarkerView.java:309) at org.springframework.web.servlet.view.freemarker.FreeMarkerView.renderMergedTemplateModel(FreeMarkerView.java:257) at org.springframework.web.servlet.view.AbstractTemplateView.renderMergedOutputModel(AbstractTemplateView.java:165) at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:314) at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1325) at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1069) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1008) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:866) at javax.servlet.http.HttpServlet.service(HttpServlet.java:529) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851) at javax.servlet.http.HttpServlet.service(HttpServlet.java:623) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:197) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142) at com.github.xiaoymin.swaggerbootstrapui.filter.SecurityBasicAuthFilter.doFilter(SecurityBasicAuthFilter.java:84) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142) at com.github.xiaoymin.swaggerbootstrapui.filter.ProductionSecurityFilter.doFilter(ProductionSecurityFilter.java:53) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142) at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142) at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:126) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:90) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:118) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:158) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilterInternal(BasicAuthenticationFilter.java:155) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at com.whir.web.filter.JwtAuthenticationTokenFilter.doFilterInternal(JwtAuthenticationTokenFilter.java:286) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at com.whir.web.filter.ValidateCodeFilter.doFilterInternal(ValidateCodeFilter.java:51) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:96) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:92) at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:77) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215) at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142) at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142) 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:166) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142) at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:117) at org.springframework.boot.web.servlet.support.ErrorPageFilter.access$000(ErrorPageFilter.java:61) at org.springframework.boot.web.servlet.support.ErrorPageFilter$1.doFilterInternal(ErrorPageFilter.java:92) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:110) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:166) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:88) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:83) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:643) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:72) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:398) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:939) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1831) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:973) at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:491) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) at java.lang.Thread.run(Thread.java:750)