2

我写信是因为我似乎无法解决的一个错误。

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 的评论回复。

4

1 回答 1

1

您将 ear 文件名与选项连接起来,而这些是用逗号分隔的两个参数。尝试:

AdminApp.install(EAR_FILE, "'" + "[" + ParameterStr + "]" + "'")
于 2018-04-18T20:21:56.470 回答