Websphere 脚本中的wsadmin jython脚本调用方法

Websphere 脚本中的wsadmin jython脚本调用方法,websphere,jython,maximo,wsadmin,Websphere,Jython,Maximo,Wsadmin,有没有办法通过wsadmin程序调用jython脚本中的特定函数 # BusAndBusMemeber.py def devCreateBus: AdminTask.createSIBus('[-bus intjmsbus -description [SIBus intjmsbus] -busSecurity false]') AdminTask.addSIBusMember('[-bus intjmsbus -node ctgNode01 -server MXServer]'

有没有办法通过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()
从服务器命令提示符:

C:\IBM\WebSphere….\bin>wsadmin-conntypesoap-user myUsername-password myPassword-lang jython-f BusAndBusMember.py devCreateBus

C:\IBM\WebSphere….\bin>wsadmin-conntypesoap-user myUsername-password myPassword-lang jython-f BusAndBusMember.py[devCreateBus]

到目前为止,我能够执行jython脚本的唯一方法是简单地编写AdminTasks脚本


谢谢。

这有点像黑客,但您可以将其附加到脚本中:

globals()[sys.argv[0]]()
另一种方法是将函数保存在此文件中,并编写第二个python脚本,该脚本执行要调用哪些函数的逻辑:

import sys
execfile("BusAndBusMemeber.py")
if sys.argv[0] == "devCreateBus":
  devCreateBus();
else:
  print("Unknown arg %s" % sys.argv[0])

这有点像黑客,但您可以将其附加到脚本中:

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”。

您还可以将
-profile
-c
选项组合在一起,例如:

.wsadmin.sh-profile“functions.py”-c“print devCreateBus()”

它仍然会在整个概要文件脚本中运行,因此您可能只需要其中的函数,而不是“main”