【问题标题】:wsadmin jython script call method in scriptwsadmin jython 脚本中的脚本调用方法
【发布时间】:2021-01-11 20:22:20
【问题描述】:

有没有办法通过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 脚本。

谢谢。

【问题讨论】:

    标签: websphere jython maximo wsadmin


    【解决方案1】:

    这有点小技巧,但您可以将其附加到您的脚本中:

    globals()[sys.argv[0]]()
    

    另一种方法是将您的函数保存在此文件中,并编写第二个 python 脚本来执行要调用的函数的逻辑:

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

    【讨论】:

      【解决方案2】:

      您还可以组合 -profile-c 选项,例如:

      .wsadmin.sh -profile "functions.py" -c "p​​rint devCreateBus()"

      它仍然会运行整个 -profile 脚本,所以你可能只想要其中的函数而不是“main”。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-05-12
        • 1970-01-01
        • 1970-01-01
        • 2019-02-19
        • 1970-01-01
        • 2015-05-01
        • 1970-01-01
        • 2023-03-06
        相关资源
        最近更新 更多