在WebSphere Application Server 8.5.5中,我在从wsadmin jython脚本设置native_stdout和native_stderr日志路径时遇到问题。 每次我设置一条路径,另一条路径被消隐。即设为null。 我认为我需要形成一行代码同时设置两个路径,但如果可能的话,无法创建正确的语法。 产生一个路径更改的代码如下所示:
srv = AdminConfig.getid('/Cell:mycell/Node:mynode/Server:server1/')
processDef = AdminConfig.list('JavaProcessDef', srv)
AdminConfig.modify(processDef, [['ioRedirect', [['stderrFilename', '${LOG_ROOT}/server1/new_stderr.log']]]])
AdminConfig.save()
这样可以正常工作,但是当我使用相同的脚本来设置stdoutFilename时,它会使先前设置的stderrFilename空白。
似乎没有区别我使用save提交更改。
对此问题的任何帮助都会受到极大的欢迎!
答案 0 :(得分:0)
你是对的,即使其他地方的手册警告AdminConfig.modify()可能会在你不期望的时候附加到列表中。我观察到同样的事情。
这是您想要安全的模式,清除它并同时设置两个属性:
AdminConfig.modify(processDef, [['ioRedirect', []]])
AdminConfig.modify(processDef, [['ioRedirect', [['stderrFilename', '${SERVER_LOG_ROOT}/my_stderr.log'], ['stdoutFilename', '${SERVER_LOG_ROOT}/my_stdout.log']]]])
在此之后,您可以进行简单验证:
print AdminConfig.showall(processDef)
但仔细观察输出,因为它不是很漂亮的