You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WebSphere 9.x无法通过Jython脚本部署EAR文件求助

解决WASX7115E:无法读取输入文件的问题

嘿,这个错误我太熟了——问题出在你的Jython脚本里,部署命令的参数格式完全错了,WebSphere把EAR文件路径和一堆部署参数当成了一个完整的文件名,自然找不到这个不存在的“文件”。

问题根源

你看错误信息里的“文件路径”:/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_h...
这明显是把EAR路径和部署参数混在一个字符串里了,AdminApp.install()方法需要两个独立的参数:第一个是EAR文件的路径,第二个是部署选项的字符串。

修复步骤

  1. 修正脚本里的部署命令
    找到脚本中调用AdminApp.install()的行,把参数拆分成两个独立的字符串:
    错误写法(混在一起):

    AdminApp.install('/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]]]')
    

    正确写法(拆分参数):

    ear_path = '/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/installableApps/my_ear_file.ear'
    deploy_options = '[-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]]]'
    AdminApp.install(ear_path, deploy_options)
    

    重点是用逗号把两个参数分开,各自用引号包裹。

  2. 验证EAR文件的存在和权限
    先确认文件真的在指定路径:

    ls -l /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/installableApps/my_ear_file.ear
    

    同时确保运行脚本的用户(比如root)有读取这个文件的权限,如果权限不够,用chmod调整:

    chmod +r /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/installableApps/my_ear_file.ear
    
  3. 先在wsadmin命令行测试
    为了避免脚本其他问题,可以先直接用wsadmin命令行测试部署命令,确认参数有效:

    /opt/IBM/WebSphere/AppServer/bin/wsadmin.sh -lang jython -c "AdminApp.install('/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]]]')"
    

    注意这里的双引号要转义(\"),避免被shell解析。

额外提示

如果部署选项里的空格或引号容易搞混,也可以用列表格式传递部署选项,可读性更强:

deploy_options = ['-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"]]]
AdminApp.install(ear_path, deploy_options)

内容的提问来源于stack exchange,提问作者daclac

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:50:18