2
에서 그루비 스크립트의 출력을 얻을 수 있습니다. 내가 어떻게 해 ? 이 멀티 스레드 경우 물론어떻게 자바에서 그루비 스크립트를 실행하고 자바
에서 그루비 스크립트의 출력을 얻을 수 있습니다. 내가 어떻게 해 ? 이 멀티 스레드 경우 물론어떻게 자바에서 그루비 스크립트를 실행하고 자바
..
는, 당신은 (있는 경우 그것은 아마도 더 나은 문제
final GroovyClassLoader classLoader = new GroovyClassLoader();
Class groovy = classLoader.parseClass(new File("script.groovy"));
GroovyObject groovyObj = (GroovyObject) groovy.newInstance();
ByteArrayOutputStream buffer = new ByteArrayOutputStream() ;
PrintStream saveSystemOut = System.out ;
System.setOut(new PrintStream(buffer)) ;
groovyObj.invokeMethod("main", null);
System.setOut(saveSystemOut) ;
String output = buffer.toString().trim() ;
을 공격 할거야 우리는 스크립트를 작성하여 시스템에 덤프하기보다는 무언가를 리턴 할 수 있도록 할 수있다.
xx 많이 작동한다. 이 방법을 사용하겠습니다 만 그루비 스크립트를 다시 작성할 수 있습니다 – hudi
@hudi : [다른 질문] (http://stackoverflow.com/questions/11737904)에서이 코드가 webapp에서 실행 중임을 언급합니다. Tim이 지적했듯이 ** 멀티 스레드 환경에서는 ** 작동하지 않습니다. 그리고 웹 애플리케이션은 본질적으로 다중 스레드입니다. 직접 테스트하는 경우 작동하는 것처럼 보일 수 있지만 동시에 두 사람이 동시에 요청을하면 출력이 끔찍하게 엉망이됩니다. –
이 응용 프로그램은 admin = one person을 사용해야하지만 경고는 thx를 사용해야합니다. – hudi