스크립트의 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"이 아닌 함수를 원할 것입니다.