2013-01-24 5 views
4

다음 코드를 사용하여 weblogic 서버에 연결할 수 있습니다. 이제 서버에 배포 된 모든 응용 프로그램 목록을 얻고 싶습니다.weblogic 서버에 배포 된 모든 응용 프로그램 목록을 가져옵니다.

명령 프롬프트의 listapplications()는 응용 프로그램을 나열하지만 interpreter.exec가 void를 반환하기 때문에 interpreter.exec (listapplications())를 실행할 때 출력을 변수에 저장할 수 없습니다. 응용 프로그램 목록을 컬렉션/배열에 저장하는 방법에 대한 아이디어가 있습니까?

다른 대안이나 리드가 도움이 될 것입니다.

import org.python.util.InteractiveInterpreter; 
import weblogic.management.scripting.utils.WLSTInterpreter; 

public class SampleWLST { 

    public static void main(String[] args) { 
     SampleWLST wlstObject = new SampleWLST(); 
     wlstObject.connect(); 
    } 

    public void connect() { 
     InteractiveInterpreter interpreter = new WLSTInterpreter(); 
     interpreter.exec("connect('username', 'password', 't3://localhost:8001')"); 
    } 
} 

답변

3

나는 그것을 풀었다. InteractiveInterpreter의 setOut 메서드를 사용하여 스트림으로 리디렉션하여 wlst의 출력을 캡처하고 Java에서 스트림을 읽는 스캐너를 작성했습니다.

다른 사람에게 도움이되기를 바랍니다.

ArrayList<String> appList = new ArrayList<String>(); 
Writer out = new StringWriter(); 
interpreter.setOut(out); 
interpreter.exec("print listApplications()"); 

StringBuffer results = new StringBuffer(); 
results.append(out.toString()); 

Scanner scanner = new Scanner(results.toString()); 
while(scanner.hasNextLine()){ 
    String line = scanner.nextLine(); 
    line = line.trim(); 
    if(line.equals("None")) 
     continue; 
    appList.add(line); 
} 
관련 문제