以下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)
使用"修改"是否可以帮助确定错误发生的原因?命令?
感谢您的时间。
答案 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都没有多条记录。但那是另一天的另一个问题:)。