Jython接收为类型" ApplicationDeployment"指定的无效属性 - " sessionManagement"脚本异常

时间:2016-05-06 12:46:20

标签: websphere jython wsadmin

以下jython脚本尝试在Websphere 7中修改企业应用程序级别的Cookie设置。但是,运行它时会出现以下异常:

exception information: com.ibm.ws.scripting.ScriptingException: WASX7080E: Invalid attributes specified for type "ApplicationDeployment" -- "sessionManagement"

以下是代码:

deployedApplicationId = AdminConfig.getid('/Deployment:myWebApp/')
deployedObject = AdminConfig.showAttribute(deployedApplicationId, 'deployedObject')

overrideSessionManagAttr = ['enable', 'true']
defaultCookieAttrs = ['defaultCookieSettings', [['name', 'JSESSIONID_MY_COOKIE'], ['secure', 'true']]]
attributeList = [overrideSessionManagAttr, defaultCookieAttrs]
sessionAttributes = [['sessionManagement', attributeList]]

AdminConfig.modify(deployedObject, sessionAttributes)
AdminConfig.save()

奇怪的是,当我使用create命令时,我没有收到任何错误,并且相应地更改了设置。

AdminConfig.create('ApplicationConfig', deployedObject, sessionAttributes)

使用"修改"是否可以帮助确定错误发生的原因?命令?

感谢您的时间。

1 个答案:

答案 0 :(得分:0)

看起来修改命令需要另一个属性名才能使它工作,所以脚本需要像这样更新:

deployedApplicationId = AdminConfig.getid('/Deployment:myWebApp/')
smList = AdminConfig.list('SessionManager', deployedApplicationId).splitlines()
for sm in smList:
    AdminConfig.modify(sm, '[ [enable true] ]')
    dcs = AdminConfig.showAttribute(sm, 'defaultCookieSettings')
    AdminConfig.modify(dcs, '[ [name COOKIE_NAME] [secure true] ]')

AdminConfig.save()

我需要遍历smList这一事实对我来说仍然不清楚。为什么我首先在​​我的Websphere设置中有多个这些记录?只有开发环境有多条记录,UAT和PROD都没有多条记录。但那是另一天的另一个问题:)。