Websphere 9X无法通过jython脚本部署ear文件

时间:2018-04-18 20:11:37

标签: python websphere jython websphere-9

我因为错误而写作,我似乎无法解决。

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

1 个答案:

答案 0 :(得分:0)

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

AdminApp.install(EAR_FILE, "'" + "[" + ParameterStr + "]" + "'")