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

Weblogic 12c部署EAR包时JSP预编译报错求助

解决WebLogic 12c部署EAR时JSTL相关JSP预编译报错的方案

我之前帮团队处理过类似的WebLogic部署JSTL冲突问题,结合你的情况,给你几个针对性的解决建议:

  • 检查JSTL依赖的打包方式
    Tomcat本身自带JSTL实现,但WebLogic有自己的内置JSTL库。如果你的WAR包里打包了jstl.jar或standard.jar,很大概率会和WebLogic的内置库产生冲突。建议通过Maven将JSTL依赖设置为<scope>provided</scope>,或者直接从WAR的WEB-INF/lib目录中移除这些JAR包,让WebLogic使用自带的版本。

  • 显式配置WebLogic的JSP编译参数
    虽然官方说明WebLogic 12c支持JSTL,但有时候需要在weblogic.xml中显式配置JSP相关参数来适配。你可以在WAR的WEB-INF/weblogic.xml中添加以下配置:

    <jsp-descriptor>
        <precompile>true</precompile>
        <keepgenerated>true</keepgenerated>
        <compileroptions>-target 1.8 -source 1.8</compileroptions> <!-- 请匹配你的项目JDK版本 -->
        <taglib-uri-mapping>
            <taglib-uri>http://java.sun.com/jsp/jstl/core</taglib-uri>
            <taglib-location>/WEB-INF/tld/c.tld</taglib-location>
        </taglib-uri-mapping>
    </jsp-descriptor>
    

    注意确保tld文件存在于WAR的WEB-INF/tld目录下,或者直接引用WebLogic内置的TLD路径。

  • 校验JSP中JSTL标签的正确性
    部分在Tomcat中兼容的写法可能在WebLogic中不生效:

    • 确认JSTL标签的URI使用标准格式:http://java.sun.com/jsp/jstl/core(而非旧版的http://java.sun.com/jstl/core)
    • 避免使用WebLogic 12c不支持的JSTL版本特性(WebLogic 12c通常稳定支持JSTL 1.2,若项目用了JSTL 2.0的特性可能会报错)
  • 定位具体报错信息
    不要仅停留在“推测JSTL问题”,WebLogic的预编译日志会给出详细的错误栈(比如类找不到、方法不兼容等)。找到具体的异常信息,能快速锁定是依赖冲突还是标签使用问题——比如如果报错javax.servlet.jsp.jstl.core.Config找不到,基本就是依赖包冲突或未正确设置provided范围导致的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 07:08:14