WildFly 26.1.3非托管模式部署问题求助
解决WildFly 26.1.3非托管部署及文件可管理问题
1. 修复--unmanaged部署的权限错误
你遇到的Permission denied是因为WildFly运行用户没有访问/root/myproject.war的权限,/root目录默认仅root用户可访问。解决步骤:
- 将war包移动到WildFly运行用户有权限访问的专属目录:
mkdir -p /opt/wildfly/deployments-external chown wildfly:wildfly /opt/wildfly/deployments-external cp /root/myproject.war /opt/wildfly/deployments-external/ chmod 644 /opt/wildfly/deployments-external/myproject.war - 重新执行jboss-cli命令(确保以wildfly用户或具备sudo权限的用户执行):
./jboss-cli.sh --connect command="deploy /opt/wildfly/deployments-external/myproject.war --unmanaged"
2. 解决Admin API部署后404的问题
用Admin API部署解压后的项目时,需满足以下条件:
- 解压后的目录必须符合Java Web应用规范:包含
WEB-INF目录,若使用Servlet 3.0+规范可无web.xml,否则需确保WEB-INF/web.xml存在且配置正确 - 部署时指定正确的上下文路径,示例POST请求(目标地址
http://localhost:9990/management):{ "operation": "deploy", "address": [], "content": [{"path": "/opt/wildfly/deployments-external/myproject", "relative-to": "jboss.server.base.dir"}], "name": "myproject.war", "context-root": "/myproject", "unmanaged": true } - 部署后在WildFly控制台确认部署状态为
ENABLED,访问时使用正确的上下文路径(如http://your-server:8080/myproject)
3. 替代方案:配置外部部署扫描目录
若需长期管理项目文件且WildFly重启后文件不丢失,可配置外部部署扫描目录:
- 编辑
standalone/configuration/standalone.xml(对应环境的配置文件),找到<subsystem xmlns="urn:jboss:domain:deployment-scanner:2.0">节点,添加新扫描器:
其中<deployment-scanner path="deployments-external" relative-to="jboss.server.base.dir" scan-interval="5000" runtime-failure-causes-rollback="false"/>path为你创建的外部目录,scan-interval是扫描间隔(单位:毫秒),修改文件后WildFly会自动重新部署。 - 将war包或解压后的项目目录放到
/opt/wildfly/deployments-external,WildFly会自动扫描并部署。 - 直接修改该目录下的项目文件(如.properties),等待扫描间隔结束后WildFly会自动加载新内容,重启后文件不会被删除,因为存储在外部目录。
4. 注意事项
- 所有操作需确保WildFly运行用户(通常为wildfly)对目标目录和文件拥有读写权限
- 非托管模式下,WildFly不会复制部署文件到内部临时目录,所有修改直接作用于源文件,需做好文件备份
- 若使用解压后的目录部署,需确保目录名称以
.war结尾(如myproject.war/),WildFly才会识别为Web应用部署
内容的提问来源于stack exchange,提问作者Wilmer Hilaquita
相关产品推荐
相关产品推荐

