使用jBPM单Zip分发版上传大依赖Jar包至Artifacts遇阻求助
我明白你现在的困扰——52MB的fat jar上传到Business Central Artifacts时触发了Undertow的请求大小限制,而且修改了多个配置文件后依然没效果。咱们一步步排查可能遗漏的配置点:
1. 确保Undertow所有HTTP监听器都配置了大小限制
你已经修改了几个核心配置文件,但可能只改了部分HTTP监听器的设置。打开你当前服务器使用的配置文件(比如standalone-full-ha.xml或standalone.xml),找到<subsystem xmlns="urn:jboss:domain:undertow:*">节点,检查所有<http-listener>和<https-listener>是否都添加了max-post-size和max-request-size属性:
<http-listener name="default" socket-binding="http" redirect-socket="https" max-post-size="90485760" max-request-size="90485760"/> <https-listener name="https" socket-binding="https" security-realm="ApplicationRealm" max-post-size="90485760" max-request-size="90485760"/>
这两个参数分别控制POST请求体大小和整个请求的总大小,确保数值都设置为你需要的90MB左右(90485760字节)。
2. 添加JVM系统参数强制覆盖限制
有时候配置文件的设置可能被其他优先级更高的参数覆盖,你可以在JBPM服务器的启动脚本里添加JVM参数,强制指定Undertow的大小限制:
Linux/macOS(编辑standalone.conf)
JAVA_OPTS="$JAVA_OPTS -Dio.undertow.max-request-size=90485760" JAVA_OPTS="$JAVA_OPTS -Dio.undertow.max-post-size=90485760"
Windows(编辑standalone.conf.bat)
set JAVA_OPTS=%JAVA_OPTS% -Dio.undertow.max-request-size=90485760 set JAVA_OPTS=%JAVA_OPTS% -Dio.undertow.max-post-size=90485760
3. 确认服务器加载的是修改后的配置文件
很多时候问题出在服务器没加载你修改的配置文件:
- 检查启动命令是否指定了正确的配置文件,比如使用
standalone-full-ha.xml需要执行:./standalone.sh -c standalone-full-ha.xml - 重启服务器后,查看
standalone/log/server.log,搜索max-post-size或max-request-size,确认日志中输出的数值是你设置的90485760,而不是默认的10485760。
4. 验证Business Central的前端上传限制(可选)
虽然你的报错是后端Undertow抛出的,但可以顺便确认下Business Central前端是否有额外限制:登录Business Central后,进入Settings > System Settings,搜索upload相关的配置项,确保没有设置过小的上传大小阈值。
完成以上步骤后,重启服务器再尝试上传你的52MB jar包,应该就能解决问题了。
内容的提问来源于stack exchange,提问作者Joel Peltonen

