我有一个web应用程序,它是用war文件安装在websphere上的。我正在尝试通过python脚本在websphere上自动部署webapplication。脚本如下:
### cat deplApps.py
import time
# the 3 arguments are jvm name, ent app name, and path to war file
print "Args are:" , sys.argv
SERVERMBEAN = AdminServerManagement.queryMBeans("AppSrvNode01", sys.argv[0] , "Server")
if SERVERMBEAN == [] :
print "Server is in stopped state"
else :
AdminServerManagement.stopSingleServer("AppSrvNode01", sys.argv[0] )
print "sleeping for 10 seconds"
time.sleep(10)
AdminApplication.updateApplicationUsingDefaultMerge( sys.argv[1], sys.argv[2] )
AdminConfig.save()
time.sleep(10)
Sync1 = AdminControl.completeObjectName('type=NodeSync,process=nodeagent,node=AppSrvNode01,*')
AdminControl.invoke(Sync1, 'sync')
print "sleeping for 120 seconds before starting the server"
time.sleep(120)
AdminServerManagement.startSingleServer("AppSrvNode01", sys.argv[0] )
当我运行脚本在websphere上部署war文件时,出现以下错误:
异常:<type'com.ibm.ws.scripting.scriptingexception'>com.ibm.ws.scripting.scriptingexception:wasx7109e:安装任务“mapwebmodtovh”的数据不足
adma0010e:为web模块选择虚拟主机时出现验证错误。未为uri为agriworxapp.war、web inf/web.xml的web模块工作队列指定虚拟主机。“wasx7017e:运行文件“/apps/deploy/deplaps.py”时收到异常;异常信息:com.ibm.ws.scripting.scriptingexception:wasx7109e:安装任务“mapwebmodtovh”的数据不足
当我搜索错误时,它说我必须在war文件中提供ibm-web-bnd.xml ibm-web-ext.xml,所以我在war文件中提供了填充的ibm-web-bnd.xml和ibm-web-ext.xml文件;
ibm-web-bnd.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-bnd
xmlns="http://websphere.ibm.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-web-bnd_1_0.xsd"
version="1.0">
<virtual-host name="default_host"
<resource-ref>
<description>Work Queues</description>
<res-ref-name>jdbc/WorkQueuestDS</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>/>
</web-bnd>
ibm-web-ext.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-ext
xmlns="http://websphere.ibm.com/xml/ns/javaee"
xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-web-ext_1_0.xsd"
version="1.0">
<default-error-page uri="error.jsp"/>
<jsp-attribute name="useThreadTagPool" value="true" />
<jsp-attribute name="verbose" value="false" />
<jsp-attribute name="deprecation" value="false" />
<jsp-attribute name="reloadEnabled" value="true" />
<jsp-attribute name="reloadInterval" value="5" />
<jsp-attribute name="keepgenerated" value="true" />
<jsp-attribute name="trackDependencies" value="true" />
<reload-interval value="9"/>
<auto-encode-requests value="true"/>
<auto-encode-responses value="false"/>
<enable-directory-browsing value="false"/>
<enable-file-serving value="false"/>
<pre-compile-jsps value="false"/>
<enable-reloading value="true"/>
<enable-serving-servlets-by-class-name value="true"/>
</web-ext>
现在我得到以下错误
异常:<type'com.ibm.ws.scripting.scriptingexception'>com.ibm.ws.scripting.scriptingexception:wasx7109e:安装任务“mapwebmodtovh”的数据不足
adma0010e:为web模块选择虚拟主机时出现验证错误。没有为uri为agriworxapp.war、web inf/web.xml的web模块工作队列指定虚拟主机。“
1条答案
按热度按时间c8ib6hqw1#
这个错误与
.bnd
或者.ext
文件夹。命令AdminApplication.updateApplicationUsingDefaultMerge
因为name stats用于更新现有应用程序,而不是安装新应用程序。如果你想安装你需要使用AdminApplication.installXXX
命令。检查https://www.ibm.com/support/knowledgecenter/sseqtp_8.5.5/com.ibm.websphere.base.doc/ae/rxml_7libapp.html 所以你需要利用AdminApplication.checkIfAppExists
命令并在此基础上安装或更新应用程序。vh通常是was上的虚拟主机
default_host
. 有时它是用来定制安装的看到这个了吗https://www.ibm.com/support/knowledgecenter/sseqtp_8.5.5/com.ibm.websphere.base.doc/ae/rxml_taskoptions.html#rxml_taskoptions__cmd61 但我不知道AdminApplication
实际上是在利用它。