代码之家  ›  专栏  ›  技术社区  ›  user1802263

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

  •  2
  • user1802263  · 技术社区  · 6 年前

    由于一个我似乎无法解决的错误,我正在写作。

    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
    

    这是websphere在jython(2.7)中执行时阻塞的代码部分(在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/

    我已经验证了ear的路径、对ear的权限以及ear的所有权。

    我是否有类似于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 回复  |  直到 6 年前
        1
  •  1
  •   kgibm    6 年前

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

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