스크립트의 wsadmin jython 스크립트 호출 방법

Sep 25 2020

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를 스크립팅하는 것입니다.

감사.

답변

1 covener Sep 25 2020 at 21:32

약간의 해킹이지만 스크립트에 다음을 추가 할 수 있습니다.

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

대안은이 파일에 함수를 유지하고 호출 할 함수의 논리를 수행하는 두 번째 Python 스크립트를 작성하는 것입니다.

import sys
execfile("BusAndBusMemeber.py")
if sys.argv[0] == "devCreateBus":
  devCreateBus();
else:
  print("Unknown arg %s" % sys.argv[0])
1 ScottKurz Sep 25 2020 at 22:16

다음 -profile과 -c같은 옵션을 결합 할 수도 있습니다.

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

여전히 전체 -profile 스크립트를 통해 실행되므로 "main"이 아닌 함수를 원할 것입니다.