You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TomEE 10.1.4中使用scope="request"触发LinkageError问题求助

问题:TomEE 10.1.4中使用<c:set scope="request">触发重复代理类定义错误

以下XHTML代码在TomEE 8中可正常运行,但在TomEE 10.1.4中抛出运行时错误:

<!DOCTYPE html>
<html lang="en"
      xmlns="http://www.w3.org/1999/xhtml"
      xmlns:f="jakarta.faces.core"
      xmlns:c="jakarta.tags.core"
>
<f:view>
    <body>
        <c:set var="demo" value="demo" scope="request"/>
        #{param['someparam']}
        #{demo}
    </body>
</f:view>
</html>

错误栈核心内容如下:

30-Apr-2026 09:38:16.163 SEVERE [http-nio-8080-exec-6] org.apache.myfaces.context.ExceptionHandlerUtils.logException java.lang.RuntimeException occurred while processing RENDER_RESPONSE [Location=]
    java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
        ...
    Caused by: java.lang.reflect.InvocationTargetException
        ...
    Caused by: java.lang.LinkageError: loader org.apache.tomee.catalina.TomEEWebappClassLoader @1c582ac4 attempted duplicate class definition for org.apache.webbeans.custom.Map$$OwbNormalScopeProxy14900025290. (org.apache.webbeans.custom.Map$$OwbNormalScopeProxy14900025290 is in unnamed module of loader org.apache.tomee.catalina.TomEEWebappClassLoader @1c582ac4, parent loader java.net.URLClassLoader @1176dcec)
        at java.base/java.lang.ClassLoader.defineClass1(Native Method)
        ...

问题分析

该错误属于TomEE与CDI集成层面的问题,具体是TomEE内置的CDI实现OpenWebBeans在处理请求作用域对象(此处为JSTL <c:set> 设置的request域变量)时,重复生成了代理类,导致类加载时出现重复定义冲突。TomEE 10基于Jakarta EE 9+规范,相比TomEE 8的Java EE 8,CDI、JSF、JSTL的交互逻辑有较大调整,在处理JSTL设置的请求域变量被EL表达式引用的场景下,OpenWebBeans的代理生成机制出现了bug。

问题提交位置

你可以将该问题提交到:

  • Apache TomEE官方GitHub仓库的Issues板块
  • Apache TomEE官方JIRA追踪系统(项目代号为TOMEE)

内容的提问来源于stack exchange,提问作者cocorossello

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.01 20:17:29