如何在Linux的WebLogic服务器部署Act Framework调度应用至Dev/Test环境?
部署ActFramework应用到WebLogic(Linux环境)
我之前帮别人处理过类似的ActFramework部署到Java EE容器(比如WebLogic)的场景,结合你的情况,整理了以下可行的操作流程:
1. 调整应用构建配置,生成WAR包
ActFramework默认打包为可执行JAR包运行,要适配WebLogic需要改成WAR格式:
- 如果用Maven:
- 修改
pom.xml中的<packaging>为war - 添加ActFramework的WAR打包支持依赖(若未添加):
<dependency> <groupId>org.actframework</groupId> <artifactId>act-starter-war</artifactId> <version>你的ActFramework版本号</version> <scope>provided</scope> </dependency> - 执行
mvn clean package命令,生成的WAR包会存放在target/目录下
- 修改
- 如果用Gradle:
- 在
build.gradle中添加apply plugin: 'war' - 配置对应ActFramework的WAR starter依赖,执行
gradle war生成WAR包
- 在
2. 适配WebLogic的配置要求
WebLogic对Java EE应用有特定规则,需要调整应用配置避免冲突:
- 在WAR包的
WEB-INF目录下创建weblogic.xml文件,配置类加载策略(防止和服务器上已有应用类冲突):<?xml version="1.0" encoding="UTF-8"?> <weblogic-web-app xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.7/weblogic-web-app.xsd"> <container-descriptor> <prefer-application-packages> <!-- 优先加载应用自身的Act框架类,避免与WebLogic自带类冲突 --> <package-name>org.actframework.*</package-name> <package-name>org.osgl.*</package-name> </prefer-application-packages> </container-descriptor> <context-root>/你的应用上下文路径</context-root> </weblogic-web-app> - 将FTP配置、调度任务配置(如
application.properties)放到WAR包的WEB-INF/classes目录下,确保WebLogic能正常读取
3. Linux环境前置检查
部署前确认服务器环境符合要求:
- 检查WebLogic使用的Java版本是否与ActFramework兼容(Act一般要求Java 8及以上,需版本匹配)
- 验证WebLogic运行用户有访问目标FTP服务器的权限(可通过
telnet FTP服务器IP 端口测试连通性) - 确认Linux服务器防火墙规则允许应用与FTP服务器的通信
4. 通过WebLogic控制台部署应用
- 登录WebLogic管理控制台(通常地址为
http://服务器IP:7001/console) - 进入部署页面,点击安装按钮
- 选择生成的WAR包(支持上传本地文件或选择服务器本地路径)
- 按向导完成部署:
- 选择安装为应用
- 设置应用名称、目标服务器(对应Dev/Test环境的服务器节点)
- 配置应用上下文路径(需与
weblogic.xml中设置的一致)
- 部署完成后启动应用,查看WebLogic日志(路径一般为
domain_home/servers/服务器名称/logs)确认启动状态
5. 常见问题调试
- 若启动时报类冲突:检查
weblogic.xml中的prefer-application-packages是否覆盖了所有Act相关包 - 若FTP任务执行失败:排查Linux服务器到FTP服务器的网络连通性,以及WebLogic运行用户的文件读写权限
- 若调度任务未触发:确认ActFramework的调度配置正确性,同时检查WebLogic应用的线程池配置是否充足
内容的提问来源于stack exchange,提问作者Vuzi
相关产品推荐
相关产品推荐

