Java EE env (서블릿 또는 EJB)에서 유닉스 스크립트를 호출 한 경험이 있다면 누구나 공유 할 수 있습니까? 이 스크립트는 오프라인 처리가 아닌 실시간 처리를 위해 호출되어야합니다.Java EE env에서 Unix 스크립트를 실행 하시겠습니까?
답변
Java EE 컨테이너에서 생성하는 프로세스가이 작업에 적합하지 않을 수 있습니다. 쉘 스크립트 인 경우 이식 할 수 없습니다. 트랜잭션 지원을 사용하려는 경우 Quartz Scheduler을 사용하여 스크립트를 작업으로 다시 쓸 수 있습니다. 이렇게하면 Java EE에서 이런 식으로 작업 할 가능성이 높아집니다.
편집 : 당신의 요구 사항은 주석에 추가로이
Process process = new ProcessBuilder(command).start();
자세한 내용 here
작동합니다 당신은 스크립트 및/또는 파이프 (없음 기본 실행 파일)를 사용하는 경우가 포함해야 함을 유의하시기 바랍니다 쉘을 사용하여 명령 (및 설정 파이프)을 호출하십시오.
가장 큰 문제는 앱 서버 메모리 이미지가 크고 스크립트를 실행하여 메모리가 부족하여 포크가 실패 할 때 가장 큰 문제입니다. 포크 할 때 시스템은 실행 가능 이미지의 완전한 복사본을 만들어야합니다. 실제 사본을 만들지는 않지만 가상 복사본을 만들어야합니다. 따라서 4G의 실제 메모리 (예 : Java 힙, 전체 프로세스 크기)와 같은 대형 Java EE 힙이있는 경우 포크가 충분히 가질 수 있도록 여분의 "무료"4G의 실제 RAM 및/또는 스왑이 필요합니다 가상 공간이 발생합니다.
예, 즉시 sh 또는 gazillion 리소스를 빨아 들이지 않을 다른 명령을 exec 할 것입니다. 그러나 시스템은이를 알 수 없으므로 Java EE 컨테이너의 사본을 나노초 동안 한 번에 실행해야하는 것처럼 행동해야합니다.
포크에 대한 리소스가없는 경우 포크가 실패합니다.
공간이 부족한 경우 작은 미니 exec 실행기 데몬을 만드는 것이 좋습니다. 그런 다음 프로세스를 포크하는 Java EE 앱 대신 데몬에 대한 소켓을 열면 IT 부서에서 프로세스를 포크합니다. 분명히이 작은 데몬은 컨테이너보다 훨씬 적은 리소스를 소비하므로 예상치 못한 포크로 처리 할 수 있습니다.
데몬은 소켓을 통해 실행하기 위해 명령 줄을 사용하여 간단하게 처리 할 수 있으며 명령 코드 및 일부 인수가 포함 된 단순한 rpc (잠재적으로 안전하지 않거나 자연스럽지 만 ...)을 실행합니다. 프로젝트에 적합한 것이 무엇이든지. 스크립트 언어 (Python, Perl, Ruby) 인 Java로 작성할 수 있습니다. 그것을 할 수있는 많은 방법.
JMS 대기열을 청취하고 스크립트를 호출하는 작은 응용 프로그램을 작성할 수 있습니다. 그렇게하면 스크립트 실행이 앱 서버와 분리되므로 사양 제한이 발생하지 않습니다.
- 1. Django : Django에서 Unix 명령을 실행 하시겠습니까?
- 2. Java EE 5와 Java EE 6의 차이점
- 3. cronjob googleAppEngine 스크립트를 실행 하시겠습니까?
- 4. 특정 날짜에 스크립트를 실행 하시겠습니까?
- 5. Android에서 시작 스크립트를 실행 하시겠습니까?
- 6. Java EE 개발 환경?
- 7. UNIX 실행 파일
- 8. Java EE/Java 브라우저 보안
- 9. Java 코드에서 Launch4J를 실행 하시겠습니까?
- 10. Java EE 6과 역 호환되는 Java EE 6?
- 11. Eclipse EE - Java EE Perspective 대 Java Perspective
- 12. Java EE 디자인 패턴을 사용하는 Java EE 프로젝트 샘플.
- 13. Java EE war 파일
- 14. Java EE 입출력 스트림
- 15. Java EE webapps 스레딩
- 16. Java EE-DAO DVO
- 17. Java EE 프로그래밍 기술
- 18. JAVA EE 프록시 패턴
- 19. Java EE 시작
- 20. Java EE 시작하기
- 21. Java EE 및 JDK
- 22. Java EE 배포 오류
- 23. Eclipse Java EE 플러그인
- 24. Java EE 애플리케이션의 동시성
- 25. Java EE 서적을 추천합니다.
- 26. 웹 서비스 Java EE
- 27. Java EE 예제 프로젝트
- 28. Java EE App Design
- 29. Java EE 6 설치
- 30. Java EE 5.0 구성
현재 우리의 응용 프로그램은 Eclipse 플러그인이며 많은 기능을 위해 많은 유닉스 스크립트를 사용합니다. 우리의 목표는 웹 기반 응용 프로그램으로 만들고 동일한 Unix 스크립트를 다시 사용하고자합니다. 제 생각에는 App 서버에서 이러한 유닉스 스크립트를 호출하는 것입니다. 이 작업을 수행하는 더 좋은 방법을 제안 할 수 있습니까? –