Websphere 9X 无法通过 jython 脚本部署 ear 文件
Websphere 9X unable to deploy ear file via jython script
我写信是因为一个错误,我似乎无法解决。
WASX7017E: Exception received while running file "/root/wsDeploy.py"; exception information: com.ibm.ws.scripting.ScriptingException: WASX7115E: Cannot read input file "/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/installableApps/my_ear_file.ear,'[-node DefaultNode01 -cell DefaultCell01 -server server1 -MapWebModToVH [[ "Our War One" first_war.war,WEB-INF/web.xml default_host ]["Our War Two" second_war.war,WEB-INF/web.xml default_host]["Our War Three" third_war.war,WEB-INF/web.xml default_host]]]'"
现在该脚本具有以下变量和语法:
ParameterStr = "-node DefaultNode01 -cell DefaultCell01 -server server1 -MapWebModToVH [[ \"Our War One\" first_war.war,WEB-INF/web.xml default_host ][\"Our War Two\" second_war.war,WEB-INF/web.xml default_host][\"Our War Three\" third_war.war,WEB-INF/web.xml default_host]]"
EAR_FILE=/path/to/file/my_ear_file.ear
这是在 jython(2.7) 中由 websphere 执行时阻塞的代码部分(在 2.1 中也失败)
elif UpdateExistingorNewApp == "INITIAL" and ConditionForUpdate == 0:
AdminApp.install(EAR_FILE + "," + "'" + "[" + ParameterStr + "]" + "'")
AdminConfig.save()
我试过了
AdminApp.install( 'EAR_FILE' + "," + "'" + "[" + ParameterStr + "]" + "'")
AdminApp.install( "'" + EAR_FILE + "'" +"," + "'" + "[" + ParameterStr + "]" + "'")
AdminApp.install( \' EAR_FILE \' + "," + "'" + "[" + ParameterStr + "]" + "'")
我什至还尝试在 ParameterStr 变量中添加“[]”对。
我查看了以下文档以获取指导:
耳朵的路径、耳朵的权限、耳朵的归属我都验证过了。
我是否遇到了类似 globbing 的问题?输入文件在那里,并且是世界可读的。我什至 运行 脚本来自与 AppSrv01 配置文件的 (installableApps) 文件夹相同的位置。
非常感谢任何帮助。
编辑:
所以我们现在已经过了这部分。所以我想我需要开始转义任何元字符。我发布了一个完全构造的论点的样子:
AdminApp.install('/opt/IBM/WebSphere/AppServer/installableApps/my_ear_file.ear','[-node DefaultNode01 -cell DefaultCell01 -server server1 -MapWebModToVH [[ \"Our War One\" first_war.war,WEB-INF/web.xml default_host ][\"Our War Two\" second_war.war,WEB-INF/web.xml default_host][\"Our War Three\" third_war.war,WEB-INF/web.xml default_host]]]')
此时我们的论点略有不同,但解释者似乎仍然可以接受
AdminApp.install( /opt/IBM/WebSphere/AppServer/installableApps/my_ear_file.ear,'[-node DefaultNode01 -cell DefaultCell01 -server server1 -MapWebModToVH [[ \"Our War One\" first_war.war,WEB-INF/web.xml default_host ][\"Our War Two\" second_war.war,WEB-INF/web.xml default_host][\"Our War Three\" third_war.war,WEB-INF/web.xml default_host]]]')
这样就生成了
java.lang.IllegalArgumentException: java.lang.IllegalArgumentException: WASX7122E: Expected "-" not found.
所以我现在想通过反复试验看看我可以处理哪些元字符。
我基于 kgibm 的评论回复。
您将 ear 文件名与选项连接在一起,而这些是由逗号分隔的两个参数。尝试:
AdminApp.install(EAR_FILE, "'" + "[" + ParameterStr + "]" + "'")
我写信是因为一个错误,我似乎无法解决。
WASX7017E: Exception received while running file "/root/wsDeploy.py"; exception information: com.ibm.ws.scripting.ScriptingException: WASX7115E: Cannot read input file "/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/installableApps/my_ear_file.ear,'[-node DefaultNode01 -cell DefaultCell01 -server server1 -MapWebModToVH [[ "Our War One" first_war.war,WEB-INF/web.xml default_host ]["Our War Two" second_war.war,WEB-INF/web.xml default_host]["Our War Three" third_war.war,WEB-INF/web.xml default_host]]]'"
现在该脚本具有以下变量和语法:
ParameterStr = "-node DefaultNode01 -cell DefaultCell01 -server server1 -MapWebModToVH [[ \"Our War One\" first_war.war,WEB-INF/web.xml default_host ][\"Our War Two\" second_war.war,WEB-INF/web.xml default_host][\"Our War Three\" third_war.war,WEB-INF/web.xml default_host]]"
EAR_FILE=/path/to/file/my_ear_file.ear
这是在 jython(2.7) 中由 websphere 执行时阻塞的代码部分(在 2.1 中也失败)
elif UpdateExistingorNewApp == "INITIAL" and ConditionForUpdate == 0:
AdminApp.install(EAR_FILE + "," + "'" + "[" + ParameterStr + "]" + "'")
AdminConfig.save()
我试过了
AdminApp.install( 'EAR_FILE' + "," + "'" + "[" + ParameterStr + "]" + "'")
AdminApp.install( "'" + EAR_FILE + "'" +"," + "'" + "[" + ParameterStr + "]" + "'")
AdminApp.install( \' EAR_FILE \' + "," + "'" + "[" + ParameterStr + "]" + "'")
我什至还尝试在 ParameterStr 变量中添加“[]”对。
我查看了以下文档以获取指导:
耳朵的路径、耳朵的权限、耳朵的归属我都验证过了。
我是否遇到了类似 globbing 的问题?输入文件在那里,并且是世界可读的。我什至 运行 脚本来自与 AppSrv01 配置文件的 (installableApps) 文件夹相同的位置。
非常感谢任何帮助。
编辑:
所以我们现在已经过了这部分。所以我想我需要开始转义任何元字符。我发布了一个完全构造的论点的样子:
AdminApp.install('/opt/IBM/WebSphere/AppServer/installableApps/my_ear_file.ear','[-node DefaultNode01 -cell DefaultCell01 -server server1 -MapWebModToVH [[ \"Our War One\" first_war.war,WEB-INF/web.xml default_host ][\"Our War Two\" second_war.war,WEB-INF/web.xml default_host][\"Our War Three\" third_war.war,WEB-INF/web.xml default_host]]]')
此时我们的论点略有不同,但解释者似乎仍然可以接受
AdminApp.install( /opt/IBM/WebSphere/AppServer/installableApps/my_ear_file.ear,'[-node DefaultNode01 -cell DefaultCell01 -server server1 -MapWebModToVH [[ \"Our War One\" first_war.war,WEB-INF/web.xml default_host ][\"Our War Two\" second_war.war,WEB-INF/web.xml default_host][\"Our War Three\" third_war.war,WEB-INF/web.xml default_host]]]')
这样就生成了
java.lang.IllegalArgumentException: java.lang.IllegalArgumentException: WASX7122E: Expected "-" not found.
所以我现在想通过反复试验看看我可以处理哪些元字符。
我基于 kgibm 的评论回复。
您将 ear 文件名与选项连接在一起,而这些是由逗号分隔的两个参数。尝试:
AdminApp.install(EAR_FILE, "'" + "[" + ParameterStr + "]" + "'")