江苏叁拾叁信息技术有限公司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大模型,将这种弥漫在农业系统中的不确定性,尽可能地转化为可分析、可预测、可优化的确定性。这一过程不仅关乎技术应用,更是在重新定义农业生产的科学基础。
农业AI大模型:如何将农田复杂性转化为可计算的确定性
来源:江苏叁拾叁

发布时间:2026-01-19

139阅读


农业生产本质上是与不确定性共舞的过程——天气的突变、病虫害的突发、市场的波动,构成了千百年来农业决策的基本困境。传统经验尽管宝贵,却难以系统化、规模化地应对这种不确定性。江苏叁拾叁智慧农业有限公司正在进行的探索,核心在于通过其自主研发的农业AI大模型,将这种弥漫在农业系统中的不确定性,尽可能地转化为可分析、可预测、可优化的确定性。这一过程不仅关乎技术应用,更是在重新定义农业生产的科学基础。

模型构建的底层逻辑:解构复杂性,构建数字孪生

江苏叁拾叁的农业AI大模型始于一个根本性的认知:要对农业系统进行智能化管理,首先必须为其创建一个能够反映其核心运行规律的“数字孪生”。这个孪生体不是简单的三维可视化,而是一个由数据驱动、机理模型约束、能够模拟真实系统动态演进的复杂计算模型。

构建这一模型的第一步,是系统性解构农业生产的复杂性。团队将影响作物或养殖对象的数百个关键变量——从气候、土壤的物理化学性质、水肥投入、到作物本身的遗传特性与生理状态——进行梳理,并建立它们之间的关联网络。例如,在水稻生长模型中,它不仅包含温度、光照对光合作用的影响公式,还嵌入了不同氮素水平下叶片生长与分蘖动态的经验模型,甚至考虑了田间小气候因植被冠层变化而产生的反馈效应。这个数字孪生体通过持续接入卫星、无人机、传感器网络回传的实时数据,不断地校准自身状态,使其无限逼近于物理世界的真实农田或塘口。它成为了一个可以进行“假设分析”的沙盘:如果未来一周降水偏少,灌溉策略应如何调整?如果提前十天播种,遭遇低温冷害的风险会增加多少?这种在数字世界中的预演,为现实决策提供了前所未有的科学依据。

核心能力:从预测到处方,实现决策链闭环

该大模型的价值,在其强大的决策支持能力上得到集中体现。这种能力表现为一个递进的链条:从“状态预测”到“问题诊断”,最终生成可执行的“优化处方”。

在状态预测层面,模型能够基于历史数据与实时信息,对作物生长趋势、病虫害发生概率、水产养殖对象的规格与产量进行前瞻性估算。比如,在设施番茄种植中,模型可以根据当前植株的形态数据(通过图像分析获得)、累积的光温数据,预测未来两周内各果穗的成熟时间与产量分布,为采收与销售计划提供精准指导。

当预测或监测到异常时,模型进入诊断环节。这里的关键在于其因果推理能力。面对一片叶色异常的水稻,模型不会仅给出“可能缺素”的模糊结论。它会综合土壤养分检测数据、根系图像分析、近期施肥记录及灌溉情况,推算出最可能的成因组合(例如,“根系活力因前期渍水受损,导致对表层土壤中有效钾的吸收受阻”),并量化各成因的概率。这种诊断的精准性,直接决定了后续措施的效力。

最终的输出,是高度定制化的“智能处方”。这可能是为不同田块网格定义的变量施肥地图,精确到每一行的用肥量;可能是为养殖池塘制定的未来一周动态投饲计划,具体到每一天不同时段的投喂速率与时长;也可能是为温室给出的未来24小时环境参数调控曲线,明确风机、湿帘、补光灯的启闭逻辑。这些处方不仅基于最优的农艺目标,还综合了设备能力、能源成本、劳动力约束等现实因素,实现了从“理想方案”到“可行方案”的关键跨越。

农业AI大模型4

系统协同:模型作为“大脑”,驱动硬件与服务网络

一个强大的大脑需要灵巧的四肢来执行其意志。江苏叁拾叁的独特优势在于,其AI大模型与公司自主研发的智能装备及服务平台形成了深度协同的有机整体。模型输出的“智能处方”,可以无缝下发至相应的执行终端。

在江苏沿海集团的规模化农场,由模型生成的灌溉指令直接控制着“大禹系列”智能闸门,实现万亩农田的自动按需供水。在新疆的集约化养殖基地,“诺亚系列”投饲机器人则依据模型计算的投饲曲线,进行精准、均匀的饵料投放。这种“所思即所得”的闭环,确保了决策的意图能够被无损、高效地转化为现实的生产力改变,极大提升了管理的时效性与一致性。

与此同时,模型的能力也通过“新农人小能手”小程序、“综合农事服务专家”等轻量化应用,赋能给更广泛的农业从业者。农户通过自然语言提问,即可调用后台大模型的诊断与推荐能力,获得个性化的指导。在县域农事服务平台,大模型则扮演着智能调度中心的角色,分析区域需求,优化配置农机、农资等社会化服务资源。这使前沿的AI技术得以突破复杂度的壁垒,以极低的门槛服务产业末梢。

持续进化:在产业实践中反哺与迭代

真正的智能系统必然是生长性的。江苏叁拾叁的农业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)