JAVA EJB로 프로그램을 하나 만들어야 되는데 가닥을 못잡겠습니다. 조언 부탁드립니다.

moonrepeat의 이미지

현재 JAVA EJB를 이용해서 프로그램을 하나 만들어야 됩니다.
만드는 프로그램은 BPM의 엔진 부분인데 저는 JAVA는 조금 쓸줄 아는데
EJB는 도저히 감이 잡히지 않습니다.(왜 쓰는지 조차도....)

프로그램은 현재 각종 EJB책을 보고 대충 짜고는 있는데 아래와 같이 구성했습니다.
ProcessInstance.java
ProcessInstanceBean.java
ProcessInstanceHome.java
ProcessInstancePK.java

ActivityInstance.java
ActivityInstanceBean.java
ActivityInstanceHome.java
ActivityInstancePK.java

ActivityLinkInstance.java
ActivityLinkInstanceBean.java
ActivityLinkInstanceHome.java
ActivityLinkInstancePK.java
이상 EJB 엔티티빈

EngineControl.java
EngineControlBean.java
EngineControlHome.java
이상 EJB 세션빈

그리고 화면 구성 및 정보 입력 등은 JSP로 작성할 예정인데
세션빈에서 엔티티빈들을 객체로 생성시키고 저장하는 등의 작업들이 위의
구성만 가지고 가능합니까?

그리고 세션빈에서 엔티티빈을 개체로 생성시킨후 이걸 Vector에 저장시켜
핸들링 하는게 가능합니까?

위의 것들이 될려면 위의 구성보다 추가로 필요한 구성이 있습니까?

참고로 세션빈에서 ProcessInstance 엔티티빈을 객체로 생성시키면 자동으로
그에 해당하는 ActivityInstance 엔티티빈들과 ActivityLinkInstance 엔티티
빈들을 객체로 생성 시켜야 합니다.

(만약 지저분하지만 소스가 필요하시다면 메일로 보내드리겠습니다.....)
(구현 환경은 weblogic + oracle9i 이고 툴은 eclipse사용중 입니다.)
(쓰고 보니 질문이 상당히 애매하군요..... 욕하지 마시길.....)

fender의 이미지

음... 좀 극단적인 답을 드리자면...

EJB 2.x 이하는 쓰지 마세요. 정확히 말하자면 이미 반드시 써야하는 이유를 확실히 알고 계시는 경우가 아니라면 EJB는 가능한 모든 방법을 다해서 피하시라고 조언드리고 싶습니다.

정말 어지간한 웹이나 서버 어플이라면 풀스택 J2EE 서버 없이, 혹은 EJB 없이 비슷한 기능을 훨씬 가볍고 간단하게 구현할 수 있는 방법이 많이 있습니다.

EJB3의 경우는 좀 문제가 다르긴 합니다. Java 5와 맞물려서 EJB 2.x와 거의 공통점을 찾기 어려울 정도로 개선되기도 했고, 사실 저도 지금 적극적으로 EJB3로 개발을 해보는 중이지만 문제는 아직 일반적으로 쓰이려면 시간이 필요합니다.

원 질문에 대한 답을 드리자면, 해당 EJB를 배포하시려면 표준 배치 디스크립터와 벤더 종속적인 배치 디스크립터를 함께 작성해야 합니다. 그리고 컬렉션(Vector/Hashtable은 되도록 안쓰는 것이 좋습니다)에 엔티티빈을 담아 넘기는 것은 불가능한 건 아니지만 결코 권장하는 방법이 아닙니다. 일반적으로는 Value Object 패턴을 많이 사용합니다.

어쨌든... 지금이라도 늦지 않았습니다;; 가능하면 다른 프레임워크를 찾아보시는 게 어떨까요? EJB 2.x 이하를 그것도 EJB 스펙에 대한 정확한 이해 없이 쓴다는 것은 재앙의 시작입니다;

----------------------------
[서명] 그놈 한국 사용자 모임 - 그놈에 대한 모든 것! - 게시판, IRC, 위키, 갤러리 등등...

moonrepeat의 이미지

답변 감사드립니다.

그런데 어차피 교수님이 EJB를 이용하라고 하셨고 또 실제로 사용할것이 아니고
BPM에 특별한 아이디어를 집어 넣어 특정 업종에서 이득을 볼 수 있다는 식의
논문 작성용이라 그문제는 별 상관없습니다.

여기서 또 부탁 하나......
혹시 엔티티빈 두개 이상과 연결되어 있는 세션빈을 가지는 프로그램중 주석 멋지게 달려있는 예제 어디서 구할 수 없을까요..... :oops: :oops: :oops:
(엔티티빈들은 상호 데이터 교류도 있으면 더 좋음....)

삽질은 계속되어야 한다....... 쭉.........

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.