无法在AdminApp.update()中使用字符串变量,Jython脚本语法错误求助
问题排查与解决
错误根源
你遇到的SyntaxError是因为字符串拼接语法错误,同时存在路径分隔符和参数格式问题:
- 拼接
filename变量时,变量前后未正确使用+运算符连接字符串片段,导致Jython无法解析 - 路径中的反斜杠
\未转义,会被当作转义字符处理,引发路径格式问题 contents和contenturi的路径拼接缺少必要的分隔符,会导致最终路径不合法
修正后的脚本
import os.path import sys filename = sys.argv[0] print "filename = " + filename # 修正字符串拼接语法,统一用正斜杠作为路径分隔符,补充必要的分隔符和空格 AdminApp.update( 'api-docs', 'file', '[-operation addupdate -contents C:/IBM_Thinclient_DEV/Auto-deployments/ear/swagger-spec/' + filename + ' -contenturi api-docs.war/yaml/' + filename + ']' ) AdminApp.update( 'api-docs', 'file', '[-operation addupdate -contents C:/IBM_Thinclient_DEV/Auto-deployments/ear/swagger-spec/' + filename + ' -contenturi api-docs.war/yaml/' + filename + ']' )
关键修改点说明
- 补全字符串拼接运算符:在
filename前后都加上+,确保字符串片段和变量正确连接,比如'.../' + filename + ' -contenturi...' - 统一路径分隔符:把原脚本中的
\yaml改成/yaml/,避免反斜杠转义问题,同时补充路径末尾的斜杠,确保文件路径正确 - 补充参数空格:在
filename和-contenturi之间添加空格,保证AdminApp.update的命令参数格式合法
验证方法
重新执行原命令:
C:\IBM_Thinclient_DEV>wsadmin.bat -lang jython -host traj-d-was01 -port 8879 -f Auto-deployments/Jython/UpdateApplicationSingleFile.py usergroups.yaml
内容的提问来源于stack exchange,提问作者Martin J
相关产品推荐
相关产品推荐

