🎈今日推荐——https://cloud.tencent.com/developer/article/2466508
使用Python实现智能食品广告投放优化的深度学习模型——这篇文章介绍了如何使用Python构建一个智能食品广告投放优化的深度学习模型。通过分析广告数据、用户行为和市场趋势,优化广告策略。包括数据准备、预处理、模型构建、训练、评估和实际应用等步骤,并提供了代码示例。
WebLogic 是一款广泛应用于企业级应用的中间件,支持 J2EE 应用程序的高效部署与管理。然而,在复杂的环境中,手动部署可能会引发诸多问题,例如配置不一致、效率低下等。为了提升部署效率和可靠性,WebLogic 提供了多种自动化工具,例如 WebLogic Scripting Tool(WLST)和脚本化的部署方法。
在现代软件开发中,持续集成和持续部署(CI/CD)已经成为行业标准。部署应用到 WebLogic 时,以下问题常见:
为了应对上述问题,自动化部署脚本应运而生。
目标 | 描述 |
---|---|
快速部署 | 减少人工操作时间,快速完成应用部署 |
环境一致性 | 确保不同环境下的部署配置一致 |
可重复性 | 脚本可多次重复使用,减少人为失误 |
集成 CI/CD 流程 | 与 Jenkins 等工具结合,实现持续部署 |
WebLogic 支持多种自动化部署工具,其中 WLST 是最核心的组件。
WLST 是 WebLogic 提供的基于 Jython 的脚本工具,可以通过命令行或脚本完成以下任务:
· 管理 WebLogic 域:如启动、关闭服务器。
· 部署应用程序:支持 EAR、WAR、JAR 等多种格式。
· 配置资源:如数据源、JMS 等。
工具名称 | 描述 |
---|---|
WLST | 提供脚本化管理 WebLogic 的能力 |
Ant | 用于构建和部署的工具,支持 WebLogic 扩展 |
Jenkins | 自动化工具,结合 WLST 实现持续部署 |
以下示例基于一个简单的 Web 应用程序部署任务,逐步讲解 WLST 脚本的编写和执行过程。
· 安装 WebLogic
确保 WebLogic Server 已安装并正常运行。推荐安装 12c 或更高版本。
· 准备应用文件
准备一个 WAR 文件(如 example.war
),该文件将被部署到 WebLogic。
· 创建工作目录
mkdir /opt/weblogic-scripts
cd /opt/weblogic-scripts
以下脚本使用 WLST 自动部署一个应用程序到 WebLogic。
WLST 部署脚本示例
文件名:deployApp.py
# 导入必要模块
from java.util import Properties
from java.io import FileInputStream
# 加载配置文件
configFile = 'config.properties'
propInputStream = FileInputStream(configFile)
configProps = Properties()
configProps.load(propInputStream)
# 读取配置
adminURL = configProps.getProperty('admin.url')
adminUser = configProps.getProperty('admin.user')
adminPassword = configProps.getProperty('admin.password')
appName = configProps.getProperty('app.name')
appPath = configProps.getProperty('app.path')
targetServer = configProps.getProperty('target.server')
# 连接 WebLogic 管理服务器
connect(adminUser, adminPassword, adminURL)
# 部署应用程序
edit()
startEdit()
deploy(appName, appPath, targets=targetServer)
save()
activate()
# 断开连接
disconnect()
配置文件示例
文件名:config.properties
# WebLogic 管理服务器信息
admin.url=t3://localhost:7001
admin.user=weblogic
admin.password=weblogic123
# 应用信息
app.name=ExampleApp
app.path=/opt/weblogic-scripts/example.war
target.server=AdminServer
执行部署脚本
在命令行执行以下命令:
java weblogic.WLST deployApp.py
脚本功能 | 描述 |
---|---|
| 连接到 WebLogic 管理服务器 |
| 开启编辑模式,用于配置更改 |
| 部署应用程序到指定的服务器 |
| 保存并激活更改 |
| 断开与 WebLogic 的连接 |
以下是一个更复杂的示例,展示如何通过自动化脚本部署多层应用系统。
一个包含前端、后端和数据库的三层架构系统,部署需求如下:
· 前端应用:部署到 WebLogic 的 AdminServer。
· 后端服务:部署到 Managed Server。
· 数据源配置:为后端服务配置 MySQL 数据源。
文件名:multiTierDeploy.py
# 导入模块
from java.util import Properties
from java.io import FileInputStream
# 加载配置文件
configFile = 'multiTierConfig.properties'
propInputStream = FileInputStream(configFile)
configProps = Properties()
configProps.load(propInputStream)
# 配置
adminURL = configProps.getProperty('admin.url')
adminUser = configProps.getProperty('admin.user')
adminPassword = configProps.getProperty('admin.password')
frontendAppPath = configProps.getProperty('frontend.app.path')
backendAppPath = configProps.getProperty('backend.app.path')
dataSourceName = configProps.getProperty('datasource.name')
dataSourceJNDI = configProps.getProperty('datasource.jndi')
dbURL = configProps.getProperty('db.url')
dbUser = configProps.getProperty('db.user')
dbPassword = configProps.getProperty('db.password')
# 连接管理服务器
connect(adminUser, adminPassword, adminURL)
# 配置数据源
edit()
startEdit()
cd('/')
create(dataSourceName, 'JDBCSystemResource')
cd('JDBCSystemResource/' + dataSourceName + '/JdbcResource/' + dataSourceName)
create('myJdbcDriverParams', 'JDBCDriverParams')
cd('JDBCDriverParams/NO_NAME_0')
set('DriverName', 'com.mysql.jdbc.Driver')
set('URL', dbURL)
set('Password', dbPassword)
set('User', dbUser)
save()
activate()
# 部署前端和后端应用
edit()
startEdit()
deploy('FrontendApp', frontendAppPath, targets='AdminServer')
deploy('BackendApp', backendAppPath, targets='ManagedServer')
save()
activate()
# 断开连接
disconnect()
文件名:multiTierConfig.properties
# WebLogic 管理服务器信息
admin.url=t3://localhost:7001
admin.user=weblogic
admin.password=weblogic123
# 前后端应用路径
frontend.app.path=/opt/weblogic-scripts/frontend.war
backend.app.path=/opt/weblogic-scripts/backend.war
# 数据源信息
datasource.name=MyAppDataSource
datasource.jndi=jdbc/MyAppDataSource
db.url=jdbc:mysql://localhost:3306/myapp
db.user=root
db.password=root123
在使用脚本进行 WebLogic 自动化部署时,可能会遇到各种问题。
· 问题描述:
WLST 脚本无法与 WebLogic 管理服务器建立连接,通常会显示类似以下错误信息:
Connection refused: connect
或 Failed to connect to t3://<hostname>:<port>
。
·可能原因:
· 解决方案:
1 确保 WebLogic 管理服务器处于运行状态:
……在命令行中执行以下命令确认状态:
ps -ef | grep weblogic.Server
……如果未运行,请启动服务器:
./startWebLogic.sh
2 检查脚本中提供的 URL 是否正确:
……格式应为:t3://<hostname>:<port>
,例如 t3://localhost:7001
。
3 验证管理员用户名和密码是否正确:
……使用正确的凭据登录 WebLogic 管理控制台验证。
4 确保没有网络阻塞:
……测试脚本运行的机器是否能 ping 通 WebLogic 服务器。
· 问题描述:
脚本在执行 deploy
操作时失败,通常会显示以下错误信息:
Deployment failed: Unable to deploy application
或 Target server is not reachable
.
·可能原因:
· 解决方案:
1 确保应用包路径正确无误:
……在脚本中检查应用包路径配置,例如:
app.path=/path/to/your/application.war
……确认路径有效并且文件存在:
ls /path/to/your/application.war
2 检查目标服务器状态:
……在 WebLogic 控制台或脚本中确认目标服务器是否处于运行状态。
ps -ef | grep ManagedServer
……如果未启动目标服务器,可以通过以下命令启动:
./startManagedWebLogic.sh <ServerName> t3://<hostname>:<port>
3 确保目标服务器名称正确:
……目标服务器名称必须与 WebLogic 配置一致,例如:
deploy('AppName', '/path/to/application.war', targets='ManagedServer1')
……可以在 WebLogic 控制台中查看实际服务器名称。
· 问题描述:
数据源配置完成后无法被应用程序使用,可能会显示以下错误信息:
Cannot connect to the database
或 JDBC DataSource not found
.
· 可能原因:
· 解决方案:
1 确认数据源已正确创建:
……在脚本中检查以下配置代码是否存在并正确:
create('myJdbcDriverParams', 'JDBCDriverParams')
set('URL', 'jdbc:mysql://localhost:3306/mydb')
set('DriverName', 'com.mysql.jdbc.Driver')
set('Password', 'password123')
2 检查数据库驱动是否已部署:
……确保数据库驱动(如 MySQL 驱动 JAR 文件)已被部署到 WebLogic 的 lib
目录中:
cp mysql-connector-java-<version>.jar $WEBLOGIC_HOME/lib/
……重启 WebLogic 服务器使驱动生效:
./stopWebLogic.sh
./startWebLogic.sh
3 验证数据库连接信息:
……使用 mysql
命令行工具或其他工具验证 URL、用户名、密码是否正确:
mysql -u root -p -h localhost -D mydb
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。