3

我正在尝试创建一个简单的 python 脚本,将我的 EAR 文件部署到 Weblogic 的 AdminServer。我已经搜索了 Internet 和 Oracle 提供的文档,但我找不到确定应用程序之前是否已部署的方法。我希望我的脚本检查它是否已经存在,如果是,则发出重新部署命令。如果没有,请发出部署命令。

我试图修改我找到的示例脚本,虽然它们已经工作了,但它们的行为并没有达到预期。我尝试做的一件事是检查(使用 cd 命令)我的 EAR 是否在 WebLogic 的部署文件夹中,如果是,则发出重新部署。如果不是,它应该抛出一个异常,我将在其中发布部署。但是,每次在脚本中发出 cd 命令时都会引发异常:

try:
    print 'Checking for the existence of the ' + applicationName + ' application.....'
    cd('C:\\Oracle\\Middleware\\user_projects\\domains\\base_domain\\config\\deployments\\MyTestEAR.ear\\')
    print 'Redeploying....'
    #Commands to redeploy....

except WLSTException:
    #Commands to deploy

在使用 WLST 脚本工具设置环境变量后,我正在使用 execfile("C:\MyTestDeployer.py") 命令在 Windows 上运行此脚本。有任何想法吗?我也尝试在我的 cd 命令中使用不同的路径,但无济于事。有任何想法吗?

4

3 回答 3

3

这个对我有用:

print 'stopping and undeploying ...'

try:
    stopApplication('WebApplication')
    undeploy('WebApplication')
    print 'Redeploying...'

except Exception:
    print 'Deploy...'

deploy('WebApplication', '/home/saeed/project/test/WebApplication/dist/WebApplication.war')
startApplication('WebApplication2')
于 2012-08-12T10:05:02.973 回答
2

我过去做过类似的事情,但采用了不同的方法......

我已经使用带有 -listapps 选项的 weblogic.Deployer 接口来列出部署到域的应用程序/库,然后我会将其与存档中生成的 application.xml 的 display-name 元素进行比较

在我的例子中,我发现使用普通文件名的问题是存档带有它们的生成日期。这将导致总是错误的比较。

使用显示名称,我已经标准化了将要部署的应用程序名称,然后与要重新部署的新存档进行比较。

于 2011-09-09T21:48:33.433 回答
0

在联机模式下使用命令listApplications()列出当前部署在 WebLogic 域中的所有应用程序。

如果发生错误,该命令将返回 WLSTException。

例子 :

wls:/mydomain/serverConfig> listApplications() 
SamplesSearchWebApp
asyncServletEar
jspSimpleTagEar
ejb30
webservicesJwsSimpleEar
ejb20BeanMgedEar
xmlBeanEar
extServletAnnotationsEar
examplesWebApp
apache_xbean.jar
mainWebApp
jdbcRowSetsEar

来源:链接

于 2019-03-01T13:29:33.473 回答