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

WildFly 17中设置org.apache.jasper.compiler.Parser.STRICT_WHITESPACE系统属性未生效求助

解决Jasper的jsp.error.attribute.nowhitespace错误

我来帮你排查这个JSP解析错误的问题——你遇到的org.apache.jasper.JasperException(附带jsp.error.attribute.nowhitespace提示),本质是JSP解析器对标签属性的空白字符做了严格校验。你尝试设置org.apache.jasper.compiler.Parser.STRICT_WHITESPACE系统属性来关闭校验,但没生效,大概率是配置方式、优先级或其他细节出了问题,试试下面这些方案:

1. 校验standalone.xml中的配置格式与位置

首先确认你在standalone.xml和standalone-full.xml中的配置是否正确:

  • 必须把属性放在<system-properties>节点下,正确格式如下:
    <system-properties>
        <property name="org.apache.jasper.compiler.Parser.STRICT_WHITESPACE" value="false"/>
    </system-properties>
    
  • 注意XML节点的位置,要确保它在合法的结构中(比如<extensions>之后、<profile>之前),避免因XML语法错误导致配置被忽略。

2. 检查应用级配置是否覆盖全局设置

你的应用内部的配置文件可能会覆盖全局系统属性,需要排查:

  • 查看WEB-INF/web.xml或WEB-INF/jboss-web.xml中的<jsp-config>节点,如果有类似开启严格空白校验的配置,会优先于全局属性生效,比如:
    <jsp-config>
        <jsp-property-group>
            <url-pattern>*.jsp</url-pattern>
            <!-- 若存在相关空白校验的强制配置,需修改或移除 -->
        </jsp-property-group>
    </jsp-config>
    

3. 直接修复JSP中的问题代码

既然错误定位到第161行第98列,直接检查该行的JSP标签属性:

  • 通常是属性值前后存在多余的空格、换行或制表符,比如:
    <customTag userData="  带前后空格的属性值  ">
    
  • 去掉属性值前后的空白字符,若业务确实需要空白,可改用&nbsp;替代,或调整标签写法避免触发解析器的校验逻辑。

4. 确保服务器加载了修改后的配置

修改配置后,必须完全重启服务器,热部署不会重新加载系统属性。重启后可以在启动日志中搜索org.apache.jasper.compiler.Parser.STRICT_WHITESPACE,确认该属性已被设置为false。

5. 适配服务器版本调整属性名

部分旧版本的WildFly/JBoss可能使用不同的属性名,比如早期版本用org.apache.jasper.compiler.Parser.ALLOW_WHITESPACE_IN_ATTRIBUTES代替STRICT_WHITESPACE,可以尝试替换属性名后重启服务器测试。

内容的提问来源于stack exchange,提问作者Harry.ver36

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 08:12:36