问题描述
是否可以通过wsadmin程序在jython脚本中调用特定功能?
# BusAndBusMemeber.py
def devCreateBus:
AdminTask.createSIBus('[-bus intjmsbus -description [SIBus intjmsbus] -busSecurity false]')
AdminTask.addSIBusMember('[-bus intjmsbus -node ctgNode01 -server MXServer]')
AdminConfig.save()
def devDeleteBus:
AdminTask.deleteSIBus('[-bus intjmsbus]')
AdminConfig.save()
从服务器cmd提示符:
C:\ IBM \ WebSphere .... \ bin> wsadmin -conntype SOAP -user myUsername -password myPassword -lang jython -f BusAndBusMember.py devCreateBus
或
C:\ IBM \ WebSphere .... \ bin> wsadmin -conntype SOAP -user myUsername -password myPassword -lang jython -f BusAndBusMember.py [devCreateBus]
到目前为止,我能够执行jython脚本的唯一方法就是简单地编写AdminTasks。
谢谢。
解决方法
这有点hack,但是您可以将其附加到脚本中:
globals()[sys.argv[0]]()
另一种方法是将函数保留在该文件中,并编写第二个python脚本,该脚本执行要调用的函数的逻辑:
import sys
execfile("BusAndBusMemeber.py")
if sys.argv[0] == "devCreateBus":
devCreateBus();
else:
print("Unknown arg %s" % sys.argv[0])
,
您还可以结合使用-profile
和-c
选项,例如:
.wsadmin.sh -profile“ functions.py” -c“ print devCreateBus()”
它仍将在整个-profile脚本中运行,因此您可能只希望其中没有“ main”函数。