2012-05-28 2 views

답변

3
  1. 삽입 예를 들어 전쟁 파일의 루트에있는 웹 응용 프로그램에서 스크립트.

    String scriptPath = getServletContext().getRealPath("/script.sh");

  2. 실행 ProcessBuilder를 클래스와 스크립트 :

    new ProcessBuilder("/bin/sh", scriptPath).start();

참고이 응용 프로그램과 함께 배포되면

  • 하면 파일의 경로를 가져옵니다 서블릿 컨테이너가 war 파일의 내용을 추출하지 않으면 2 단계가 실패 할 수 있습니다. 이 경우 스크립트를 클래스 경로에서 사용할 수있는 리소스로 저장하고 해당 내용을 임시 파일에 복사 한 다음 스크립트를 실행해야합니다.

  • +0

    이 솔루션과 관련된 보안 문제가 있으므로 신중하게 사용해야합니다. 전쟁 중에 스크립트를 넣으면 사용자는 스크립트 소스 코드를 볼 수 있습니다. IMO는 외부 프로그램을 의도적으로 처리하기위한 목적으로 CGI 솔루션을 사용하는 것이 좋습니다. –

    +0

    1-ok.2 및 3 : 내 서블릿에 포함 시켰습니까? 3이 작동하는지 어떻게 알 수 있습니까? – oikonomopo

    +0

    'ProcessBuilder'에 의해 생성 된'Process'에'getInputStream()'을 호출하여 스크립트 출력을 추적 할 수 있습니다. –

    2

    Tomcat에서 CGI를 사용하고 사용하는 방법을 검색해야합니다.

    CGI (Common Gateway Interface)는 웹 서버가 외부 콘텐츠 생성 프로그램 (CGI 프로그램 또는 CGI 스크립트라고도 함)과 상호 작용할 수있는 방법을 정의합니다.

    출처 : Apache Tomcat 7 Documentation: CGI How To

    관련 문제