이번이 처음으로 질문을 게시하는 것이므로 가능한 한 명확하게 질문하려고 노력할 것입니다.Java 웹 응용 프로그램을 개발하는 가장 효율적인 방법은 무엇입니까? 아니면 구체적으로 말하면 Wicket 앱이라고할까요?
Java 웹 응용 프로그램을 개발하는 최선의 프로세스를 찾으려고합니다. 시행 착오 개월 후, 내 웹 개발 환경은 다음과 같은 부분으로 구성되어 있습니다 :
프레임 워크 : 아파치 개찰구 1.4.16
IDE : 갈릴레오 일식, m2eclipse에 플러그인으로
빌드 도구 : 메이븐 2
데이터를 액세스 : (StaticWeave 포함) JPA 2.0을 통해 EclipseLink가 2.1.1
RDBMS : MSSQL 2005 이상 jTDS를
와 DI : 구글 Guice 웹 컨테이너를 개발 2.0
: 메이븐 부두 플러그인에 포함 된 부두 서버입니다.
대상 웹 컨테이너 : 톰캣 6.x 또는
내가 실행 내 웹 어플리케이션을 테스트 라인 정밀 추적이 요구되는 동안 JPDA 수 있도록 받는다는 부두 플러그인을 사용 위.
소스 코드가 변경 될 때마다 앱을 다시로드해야 적용됩니다. 다시로드하려면 Enter 키를 눌러도되지만 다시로드 한 후 (약 3 ~ 5 개가 내 PermGen 설정에 따라 다름) OutOfMemoryException이 발생합니다. 응용 프로그램을 종료하고 다시 시작해야합니다. 자동 재 장전이 구성에 의해 달성 될 수 있다는 것을 알고 있지만 과도한 재 장전으로 인해 더 빨리 OOME으로 연결됩니다.
Google 검색 결과 메모리 누수 문제와 관련이 있다는 것을 알고 있습니다. 나는 MaxPermSize 설정을 확대하려고 시도했지만, 내 리그의 RAM은 제한되어 있으며, 정말 큰 것을 설정하는 것이 적절하지 않습니다. BTW, Tomcat 7에서 메모리 누수 감지 기능이 도입되었습니다. jTDS, Google Guice 및 Wicket 자체에서 발생하는 대부분의 메모리 누수가 발견되었지만 아무 것도 할 수 없습니다.
개발 과정을 가속화 할 수있는 방법이 있습니까? 다시로드 시간을 줄이기 위해 Glassfish와 같은 고급 웹 컨테이너로 옮겨야합니다 (미안하지만 WebLogic 또는 WebSphere를 구입할 여유가 없습니다).
미리 감사드립니다. 어떤 의견이라도 환영합니다!
JRebel (http://www.zeroturnaround.com/jrebel/)을 사용하면 정말 도움이됩니다. 아직 서버를 다시 시작해야하지만 대부분의 변경 사항은 작동합니다. Wicket과 같은 Java 중심 프레임 워크에 가장 적합합니다. 또한 개발 용 JDK의 해킹 된 버전을 사용할 수있는 경우 DCEVM (http://ssw.jku.at/dcevm/)을 시도 할 수 있습니다. – tetsuo
OMG .... 이전에 JRebel 또는 DCEVM과 같은 것이 있다는 것을 결코 알지 못했습니다! 지금 당장이 솔루션을 사용해 볼 수는 없지만 가족 주말입니다! 감사합니다. 나는 이것들을 근무일에 점검 할 것이다! – mickey
@tetsuo 그런데 의견을 '답변'으로 표시 할 수없는 이유는 무엇입니까? – mickey