2014-11-06 1 views
-1

Java SE에서 EE로 전환하기 시작한 이래로 다음 문제에 대한 최선의 방법을 알고 싶습니다.Java SE 응용 프로그램을 Java EE 응용 프로그램 모범 사례와 함께 서비스로 통합

저는 온라인에 올리려는 Java SE 응용 프로그램이 있습니다. web/EE 부분은 Windows7/Apache Tomcat 및 표준 서블릿/JSP로 설정되었습니다. Java 응용 프로그램의 경우 실제로는 상호 의존성 소스 파일의 모음입니다.

내 계획은 서블릿에 의해 호출 될 실행 .jar 파일을 만들고 출력 스트림과 필터링 된 오류 스트림을 온라인 사용자에게 넘깁니다. 내가 생각하고있는 (우선 순위에 따라)입니다

요인 : 그것은 학문적 도구

  • 하지만
  • 결과적으로 .JAR 호출

    • 오버 헤드, 높은 트래픽 처리, 호출은 구조화 된 사용자 입력 인. 은 .jar에 대한 명령 줄 인수로 전달됩니다 (나는 입력 유형 취약점을 입력으로 사용하고 있음)
    • 모듈성 Java 응용 프로그램이 여러 개정을 거칠 수 있으므로 앱과 웹 응용 프로그램 간의 간단한 연결이있는 경우 위에서 언급 한 오버 헤드없이 너무 많이 사용하지 않을 경우

    내 질문에 위의 계획, 이렇게하는 올바른 방법? 또한 다른 사람들이 내가 염려해야 할 다른 요인을 생각할 수 있습니까?

    모든 입력 또는 포인터는 대단히 감사하겠습니다!

    편집 : 그래서 이전에 나는 PHP 사용자 입력에 고유 한 파일 이름을 생성하고, 간부 함수 호출 및 파일 항아리 프로그램을 배웅 할 WIN7/아파치 HTTP/PHP와이 프로젝트를 수행했다 name을 명령 줄 인수로 사용하십시오. 이 프로그램은 비슷한 이름의 출력 파일을 생성하고 PHP는 해당 출력 파일의 내용을 가져 와서 다시 사용자에게 보냅니다. 문제는 모든 exec 호출이 새로운 JVM 인스턴스를 인스턴스화하는 것이었고이 사이트에 많은 사용자가있는 경우 서버가 이러한 많은 요청을 처리하는 크롤링/크래시 (crash/crash)를 수행하게됩니다. 그래서 내가 기본 Java 서버로 이동했습니다. 새로운 개정판을 쉽게 배포 할 수 있도록 프로그램을 단위 (병)로 사용하려는 경우를 제외하고 나는 여기에서도 같은 생각을 가졌습니다. 그리고 지금 이것은 잠정적 인 계획입니다. 이것이 바로 제 질문이이 상황에서 어떻게 움직이는 지에 대한 모범 사례를 요구하는 이유입니다.

  • +0

    완전히 미친 소리입니다. –

    +0

    @Christopher 저는 Java EE를 완전히 처음 접했습니다. 설명 된 환경에서 이것이 불가능합니까? 모든 입력은 크게 감사하겠습니다. – suv

    +0

    유스 케이스는 이해가되지 않는 것처럼 보입니다 : 실행 가능한 JAR 파일을 가져 와서 별도의 프로세스에서 실행하려고하지만 외부 애플리케이션의 서블릿의 'InputStream'(클라이언트에서) 'stdin'과 외부 응용 프로그램의'stdout'을 비교하여 서블릿의'OutputStream' (클라이언트로)으로 파이프합니까? 그것은 존재할 필요가없는 추악한 혼란처럼 보입니다. 명령 줄 프로그램을 사용하여 인터넷을 통해 실행 가능하게하려고합니까? –

    답변

    2

    대답은 간단합니다. 이 아니며 올바른 방법은입니다.

    로직을 Java SE 코드로 사용할 수있는 경우 (예 : JAR 파일로, 대부분의 경우 Java EE 웹 응용 프로그램 내에서 사용할 수 있습니다.

    서블릿이 준비되어 있으면 JAR의 기능을 사용하고 JSP 내에서 메소드 호출 결과를 제공하도록하십시오.

    Java EE를 배우기 시작하면 더 이상 JSP로 신경 쓰지 마세요. 현재 기본보기 기술은 Facelets (XHTML 페이지)입니다. 해당 주제의 Java EE 7 tutorial을 체크 아웃하면됩니다.

    +0

    고맙습니다. Java prog의 새 개정판을 모듈화하려고했습니다. 컨트롤러 로직을 변경할 필요가 없습니다. 그러나이 솔루션은 해당 유스 케이스를 돌봐야합니다. – suv

    관련 문제