2011-06-14 1 views
2

웹 응용 프로그램에 항상 Jave EE 6 프레임 워크를 사용합니다. 그래서 내가하는 일이 옳은지 확실하지 않습니다. 데이터베이스 액세스 권한이있는 원시 클라이언트 명령 줄 응용 프로그램을 만들어야합니다. 그래서 JDBC를 가진 간단한 자바 프로젝트는 그 일을 할 것입니다. 그러나 db 접근에 대한 요구 사항은 연결 풀, 동시성 처리 및 트랜잭션을 포함합니다. 이제 프로젝트의 요구 사항은 결국 웹 인터페이스를 구축하지만 먼저 명령 줄 응용 프로그램을 빌드합니다. 그리고 이것은 프레임 워크를 생각할 때입니다. 저는 Java EE 6을 좋아합니다. Java EE 6는 올바른 선택입니까? Java EE 6을 사용하여 원시 클라이언트 응용 프로그램을 개발하고 나중에 웹 모듈을 추가 할 수 있습니까? 내가 넷빈즈 7.0를 사용하고웹 응용 프로그램 만 Java EE 6 프레임 워크를 사용합니까 아니면 클라이언트 응용 프로그램에도 사용할 수 있습니까?

이 BTW

답변

2

진입 점으로 main() 클래스를 가진 독립형 클라이언트 응용 프로그램에서 JPA를 완벽하게 사용할 수 있습니다. buildpath/classpath에 JPA JAR (s)을 추가하고 RESOURCE_LOCAL 트랜잭션 유형을 사용하도록 persistence.xml을 구성하기 만하면됩니다. 킥오프 예제는 EclipseLink Wiki - Running JPA Outside Container에서 찾을 수 있습니다. 여기에 관련성의 추출물이다 :

<persistence-unit name="LocalPersistenceUnit" transaction-type="RESOURCE_LOCAL"> 
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> 
    <exclude-unlisted-classes>false</exclude-unlisted-classes> 
    <properties> 
     <property name="javax.persistence.jdbc.driver" value="oracle.jdbc.OracleDriver"/> 
     <property name="javax.persistence.jdbc.url" value="jdbc:oracle:thin:@localhost:1521:orcl"/> 
     <property name="javax.persistence.jdbc.user" value="scott"/> 
     <property name="javax.persistence.jdbc.password" value="tiger"/> 
    </properties> 
</persistence-unit> 

당신은 웹 프로젝트의 모듈로 클라이언트 프로젝트를 추가하여 웹 프로젝트에서 JPA 모델과 최종 DAO를 사용하여 클라이언트 프로젝트를 다시 사용할 수 있습니다. Eclipse의 경우 예를 들어 클라이언트 프로젝트를 Java 빌드 경로> 프로젝트> 추가 배치 어셈블리을 사용하여 클라이언트 프로젝트를 /WEB-INF/lib의 JAR로 끝내도록 웹 프로젝트의 빌드 경로에 추가하면됩니다.

마지막으로 웹 프로젝트에서 클라이언트 프로젝트의 JAR 파일을 가리키고 트랜잭션 유형을 무시하는 또 다른 persistence.xml을 가질 수 있습니다.

<persistence-unit name="WebPersistenceUnit" transaction-type="JTA"> 
    <jta-data-source>jdbc/DataSourceName</jta-data-source> 
    <jar-file>lib/JavaProject.jar</jar-file> 
</persistence-unit> 

당신이 persistence.xml에서 모델 클래스를 반복 할 필요가 없습니다 이쪽으로.

+0

안녕 BalusC. 고맙습니다. 나는 그것을 시도 할 것이다. 하나의 작은 질문, 내 개발 환경에서, 내 프로젝트에 대한 이클립스 3.2를 사용해야합니다, 당신은 Eclipse 3.2에서 Java EE 프로젝트를 만드는 방법을 알고 있습니까? –

+1

* 새로 만들기> 동적 웹 프로젝트 *. "Java EE 용 Eclipse"버전을 사용하고 있는지 확인하십시오. * Deployment Assembly *는 3.5 이전의 버전에서 * Java EE Module Dependencies *라고합니다. 가능한 경우 최신 버전으로 업그레이드하십시오. 그것은 무료입니다. – BalusC

+0

BalusC에 감사드립니다. –

1

글쎄, JavaEE 어플 다른 프레임 워크의 편집이다 (EJB, JSF, JAXP, JAXB, WS, ...). 모든 사용자가 완전한 기능의 응용 프로그램 서버를 필요로하지는 않습니다.

은 정말 귀하의 요구 사항 (및 다른 프레임 워크에 대한 지식)에 따라 달라 지지만 염두에두고 웹 모듈 요청과 함께, 다음과 같은 접근 방식은 유용 할 수 있습니다 :

  • 엔티티 EJB
  • 와 모델 데이터를
  • (쉽게 EJB로 마이그레이션 할 수 있습니다 또는 POJO를) 세션 빈과의 비즈니스 로직을 작성
  • 사용하여 명령 줄 응용 프로그램에 필요한 추가 프레임 워크 (예 : JAXB)
  • 시작을

응용 프로그램이 복잡해 지거나 추가 기능 (예 : JPA의 지속성, JTA 또는 JSF와 같은 웹 프레임 워크의 트랜잭션 제어)이 필요한 경우 응용 프로그램 서버를 사용할 수 있습니다.

0

네이티브 클라이언트 응용 프로그램을 빌드하기위한 것이 아닙니다. 당신이 찾고있는 것은 Swing 또는 RCP 일 것입니다.

1

Java EE 6에는 웹 응용 프로그램과 응용 프로그램 클라이언트라는 두 가지 '보기'기술이 있습니다. 웹 응용 프로그램은 Java EE 6에 사용되는 가장 일반적인보기 기술이지만 EJB 및 엔티티 클래스의 '기본 명령 줄'클라이언트를 만들 수 있습니다.

응용 프로그램 클라이언트에 대한 내용은 JSR-000316 Java Platform, Enterprise Edition 6 Specification 6.0 Final Release, 'EE.10 응용 프로그램 클라이언트'섹션에서 확인할 수 있습니다.

an article that describes how to use NetBeans to create, deploy and execute a Java EE 6 application that uses an application client이 있습니다.

응용 프로그램 클라이언트 채택의 주요 장애물 중 하나는 많은 클라이언트의 데스크톱에 응용 프로그램 클라이언트를 배포해야하는 부담이었습니다. GlassFish implementation of the Java EE 6 spec에는 features that help lower these burdens이 포함됩니다.

+0

고맙습니다. 나는 지금 그것을 읽기 시작한다. ty –

+0

슬프게도 JSR316은 높은 수준의 문서이므로 아이디어 만 소개하고 구현은 소개하지 않습니다. 그러나 어쨌든 고마워. :) –

+0

@Harry Pham : 도움이 될만한 기사에 대한 포인터를 추가했습니다. – vkraemer

관련 문제