江苏叁拾叁信息技术有限公司LOGO 数智富农,领跑农业AI新时代!

  • 首页
  • 产品服务
    返回主菜单
    产品服务

    农业产业AI大模型

    农业产业数字化

    数字乡村

  • 解决方案
    返回主菜单
    解决方案

    面向政府

    综合农事服务中心解决方案 高标准农田智慧化建设解决方案 农业农村大数据解决方案 单品全产业链大数据解决方案 农产品价格监测平台解决方案 冷链物流解决方案 农业碳汇平台解决方案

    面向园区

    智慧园区解决方案 乡村文旅解决方案 农业元宇宙解决方案

    面向农企

    无人大田解决方案 无人设施解决方案 无人畜禽解决方案 无人水产解决方案 无人果园解决方案 无人茶园解决方案 社会化服务解决方案 农业电商解决方案 区块链溯源解决方案 种养殖一体化解决方案 中央厨房解决方案
  • 农业机器人
  • 经典案例
  • 新闻资讯
    返回主菜单
    新闻资讯

    企业资讯

    行业动态

  • 关于我们
    返回主菜单
    关于我们

    企业介绍

    招商合作

    研究院

  • 集团网站
    返回主菜单
    叁拾叁网站群

    集团网站

    千仓机器人网站

  • 选择区域/语言
    返回主菜单
    选择区域/语言

    Australia - English

    Canada - English

    China -简体中文

    Europe - English

    Ireland - English

    Kenya - English

    Malaysia - English

    New Zealand - English

    Singapore - English

    South Africa - English

    Switzerland - English

    United Kingdom - English

    Global - English

联系我们

Contact us

您的姓名:
姓名不能为空
您的单位:
单位不能为空
您的职务:
职务不能为空
您的所在地:
所在地不能为空
联系电话:
联系电话不能为空
您的需求:
您的需求不能为空
(03)s

提交成功 提交成功

提交失败 提交失败

行业动态

农业AI大模型如何突破农业数据孤岛?

在农业数字化转型进程中,技术系统往往面临一个结构性困境:单一领域的算法模型精度再高,也难以应对农业生产中多因素交织的复杂性。土壤分析模型不懂气象变化,病虫害识别系统不了解作物生长阶段,灌溉决策工具不考虑市场预期——这种“数据孤岛”与“算法割裂”现象,成为制约农业智能迈向高阶应用的瓶颈。
农业AI大模型如何突破农业数据孤岛?
来源:江苏叁拾叁

发布时间:2026-01-20

64阅读


在农业数字化转型进程中,技术系统往往面临一个结构性困境:单一领域的算法模型精度再高,也难以应对农业生产中多因素交织的复杂性。土壤分析模型不懂气象变化,病虫害识别系统不了解作物生长阶段,灌溉决策工具不考虑市场预期——这种“数据孤岛”与“算法割裂”现象,成为制约农业智能迈向高阶应用的瓶颈。当前,一种以农业AI大模型为核心、致力于实现跨领域模型协同的新范式正在形成,它通过构建多模型协作的认知网络,为解决农业复杂系统问题提供了全新路径。在这一领域深耕的江苏叁拾叁智慧农业有限公司,正以其在多地部署的实践,展现着这种协同智能的独特价值。

建立多模型间的“认知对话”机制

农业的复杂性决定了单一模型视角的局限性。真正的智能决策需要融合植物生理、土壤化学、气象科学、农业经济等多学科知识。江苏叁拾叁构建的农业AI大模型体系,其创新性在于建立了一个能够实现多专业模型间有效“对话”与协同的框架,而非简单叠加多个独立算法。

这一协同机制的具体实现,体现在其“模型协作引擎”的设计中。当系统需要解决一个综合性生产决策时(例如制定某片稻田中后期的管理方案),引擎会同时激活多个相关专业模型:作物生长模型预测当前生育阶段与未来发育趋势;土壤养分动态模型分析各层土壤的供肥能力与变化;病虫害风险预测模型评估未来一段时间的主要威胁;小气候预测模型提供田块级别的气象条件;甚至市场价格趋势模型会提供收获期的预期收益分析。关键在于,这些模型并非各自独立运行后给出结论,而是通过一个精心设计的交互协议,进行多轮“认知对话”。例如,生长模型输出的“未来一周将进入灌浆期”的结论,会成为病虫害模型调整风险权重的重要输入;而小气候模型预测的“三天后有持续降雨”,会促使灌溉模型重新评估当前土壤水分状况的紧迫性。这种动态、有机的模型间协作,形成了对农业生产状况更为全面、立体且自洽的综合认知。

实现数据流在模型间的智能路由

多模型协同的基础,不仅在于模型能够“对话”,更在于支撑它们的数据能够在正确的时间、以恰当的形态流向需要的模型。在数据来源多样、结构各异、频率不同的农业场景中,这本身就是一项技术挑战。江苏叁拾叁的系统通过一个智能的数据路由与预处理层,构建了服务于多模型协同的“数据高速公路”。

这一数据路由层的核心能力是理解每个模型的输入需求,并对原始多源数据进行实时的加工与分发。来自无人机的高光谱影像数据,在路由层会被并行处理:提取的归一化植被指数(NDVI)流向长势评估模型;计算的红边指数则可能导向叶绿素含量反演模型;同时,影像的地理位置信息与时间戳会与土壤传感器的历史数据进行时空对齐,融合后的数据集再被分发给土壤墒情分析模型。更重要的是,路由层具备动态优先级调整能力。在识别到病虫害预警信号被触发时,系统会临时提高相关影像区域数据处理与分发的优先级,确保病虫害识别与防治决策模型能够获得最及时的数据输入。这种智能化的数据路由,确保了海量、异构的农业数据能够高效、精准地转化为各个专业模型的认知燃料,支撑起复杂协同决策的实时性要求。

农业AI大模型1

生成面向综合目标的协同优化方案

多个模型通过协同形成的综合认知,最终要服务于一个统一的行动目标:在资源约束下实现经济效益、产量品质与环境可持续的最佳平衡。江苏叁拾叁的农业AI大模型协同系统,在决策生成阶段展现出其在多目标优化方面的独特优势,能够输出综合考虑了各方因素的“协同优化处方”。

以水肥一体化管理决策为例,传统的单一灌溉或施肥模型可能只关注水分或养分的充足性。而在协同系统中,灌溉模型追求节水增效,施肥模型关注精准供给,土壤模型重视养分淋失风险,环境模型则计算碳排放影响。协同优化引擎的工作,是在这些不同甚至相互冲突的子目标间寻找帕累托最优解。最终生成的处方,可能不是每个单一目标下的最优方案,但却是全局意义上的最佳折衷:它可能建议在某个午后进行一次轻量灌溉,虽然略微增加了灌溉频率,但有效降低了叶片高温胁迫,并为随后进行的追肥创造了最佳的土壤水分条件,从而在整体上实现了水、肥、光、温资源的最高效利用,综合提升了水肥利用效率与作物抗逆性。这种超越单一环节、立足全局的优化能力,是协同智能范式区别于传统单点解决方案的核心价值所在。

建立基于协同效应的价值验证体系

农业新技术的采纳,最终取决于其可验证、可感知的价值。多模型协同系统因其复杂性,其价值往往隐含在综合效益的提升中,而非单一指标的显著变化。为此,江苏叁拾叁在实践中发展出一套基于“协同效应”的价值评估与呈现方法,使这种综合价值变得清晰可见。

系统不仅记录最终产量或成本数据,更致力于构建从“协同决策”到“综合效果”的可解释因果链条。例如,在一季作物结束后,系统可以生成一份详细的分析报告,量化说明:因为病虫害模型与气候模型的早期协同预警,提前五天采取了预防措施,避免了预计约5%的产量损失;因为灌溉模型与施肥模型的协同优化,在保持产量的同时减少了15%的氮肥施用量与10%的灌溉用水,并降低了相应的环境风险。这种将“协同过程”与“综合收益”直接关联的价值呈现方式,帮助农业生产者和管理者直观理解协同智能带来的复合效益,超越了传统只关注投入产出比的简单评估,为技术的持续投入与深化应用建立了可信的依据。

江苏叁拾叁智慧农业的实践表明,农业AI大模型的发展正从追求单点算法极致,迈向构建能够融合多学科知识、实现模型间深度协作的协同智能新范式。通过建立模型间的认知对话机制、实现数据流的智能路由、生成多目标协同优化方案,并构建相应的价值验证体系,这一范式为解决农业这一复杂系统性问题提供了更强大的认知工具。

这一演进意味着,农业智能化正在从“解决一个具体问题”的工具思维,升级为“理解并优化一个复杂系统”的认知思维。当AI大模型能够以协同的方式工作,它们便更接近于模拟人类专家团队的综合决策过程,在应对气候变化、资源约束和市场波动等多重挑战时展现出更强的适应性与创造力。这不仅代表着技术路径的进步,更预示着农业作为一个古老产业,在数字时代有望通过系统性的智能协同,走向更高水平的生产力与可持续性。


上一篇:农业AI大模型:提升认知密度的智能跃迁 下一篇:农业AI大模型的动态适应:如何在复杂农业环境中的持续进化
助力中国  影响世界

助力中国 影响世界

江苏叁拾叁智慧农业有限公司是以农业产业数字大脑、农业AI大模型、农业产业模型和农业智能终端装备产品为核心的国家级专精特新小巨人企业。作为中国智慧农业行业先驱,叁拾叁致力于打造中国现代农业生产的智慧化生态管理体系和农业企业精细化的科学管理体系,提升中国农业的智慧化水平和高标准农田智慧化建设,用先进技术和多场景综合解决方案为中国的农业园区、大型农场、农业经营主体、政府提供完备可靠的服务。叁拾叁已经成功落地580多个重点项目,客户企业主体25000多个。

相关动态

更多服务与支持

您的姓名
姓名不能为空
联系电话
电话不能为空
您的单位
您的单位不能为空
您的所在地
您的所在地不能为空
您的需求

解决方案

更多解决方案 解决方案
解决方案

when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${item.ID} [in template "mobile/hydt.shtml" at line 201, column 188] - Reached through: @wtl_col columnId="220" [in template "mobile/hydt.shtml" at line 199, column 105] - Reached through: @wtl_list columnId="15" fields="TITLE... [in template "mobile/hydt.shtml" at line 195, column 73] ---- Java stack trace (for programmers): ---- freemarker.core.InvalidReferenceException: [... Exception message was already printed; see it above ...] at freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:134) at freemarker.core.EvalUtil.coerceModelToTextualCommon(EvalUtil.java:467) at freemarker.core.EvalUtil.coerceModelToStringOrMarkup(EvalUtil.java:389) at freemarker.core.EvalUtil.coerceModelToStringOrMarkup(EvalUtil.java:358) at freemarker.core.DollarVariable.calculateInterpolatedStringOrMarkup(DollarVariable.java:100) at freemarker.core.DollarVariable.accept(DollarVariable.java:63) 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.ColumnTag.execute(ColumnTag.java:486) 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.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.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:199) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at com.github.xiaoymin.swaggerbootstrapui.filter.SecurityBasicAuthFilter.doFilter(SecurityBasicAuthFilter.java:84) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at com.github.xiaoymin.swaggerbootstrapui.filter.ProductionSecurityFilter.doFilter(ProductionSecurityFilter.java:53) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119) 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:170) 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:158) 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.doFilterInternal(HeaderWriterFilter.java:66) 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:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) 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:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) 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:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) 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:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) 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:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:660) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:383) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:937) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) at java.lang.Thread.run(Thread.java:745)