WebSphere:无法同时更改stderrfilname和stdoutfilename

问题描述:

在WebSphere Application Server 8.5.5中,我遇到了设置wsadmin jython脚本的native_stdout和native_stderr日志路径时出现问题的问题。 每次我设置一条路径,另一条路径被清空。即设置为空。 我假设我需要形成一行代码,它可以同时设置两条路径,但如果这是可能的,则无法创建正确的语法。 产生一个路径变化的代码如下所示:WebSphere:无法同时更改stderrfilname和stdoutfilename

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先前设定。

这似乎没有什么区别,我用保存提交更改。

任何有关这个问题的帮助将大受欢迎!

即使其他地方的手册警告说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) 

但是看着输出紧密,因为它不是漂亮的印刷

+0

棒极了!我敢肯定,在我的许多尝试中,我一定尝试过这种确切的语法,但错过了结果。非常感谢您的及时回应和帮助。 –