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 变量中添加“[]”对。

我查看了以下文档以获取指导:

https://www.ibm.com/developerworks/community/forums/html/topic?id=43cee700-9074-49e1-9223-7c4db2d89680

https://developer.ibm.com/answers/questions/258458/ucd-install-application-fails-with-wasx7115e-canno/

耳朵的路径、耳朵的权限、耳朵的归属我都验证过了。

我是否遇到了类似 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 + "]" + "'")