< 이전 | 다음 >

학습 1.2: StatelessCounterBean.java 클래스를 위한 필수 클래스와 인터페이스 작성

학습 1.2에서는 StatelessCounterBean.java 클래스의 필수 클래스 및 인터페이스 작성에 대해 단계별로 설명합니다.

시작하기 전에 학습 1.1을 완료해야 합니다.
이 학습에서는 다음을 수행합니다.
  1. Java 편집기에서 StatelessCounterBean.java 클래스를 여십시오.
  2. @Stateless 어노테이션 아래에 @Interceptors를 입력하십시오.
  3. CTRL+S를 눌러서 저장하면 @Interceptors 행 옆에 빠른 수정사항 아이콘빠른 수정사항
아이콘이 표시됩니다. 빠른 수정사항 아이콘을 마우스 오른쪽 단추로 클릭하고 빠른 수정사항을 선택하십시오.
  4. Import 'Interceptors' (java.interceptor)를 선택하고 CTRL+S를 눌러 저장하십시오.
  5. 다른 빠른 수정사항 아이콘이 표시됩니다. 빠른 수정사항 아이콘을 마우스 오른쪽 단추로 클릭하고 빠른 수정사항을 선택하십시오. 누락된 속성 추가를 선택하고 (value={null})(Audit.class)로 바꾼 후 CTRL+S를 눌러 저장하십시오.
  6. 빠른 수정사항 아이콘을 마우스 오른쪽 단추로 클릭하고 빠른 수정사항을 선택하십시오. 'Audit' 클래스 작성을 선택하십시오. 새 Java 클래스 작성 페이지에서 기본값을 승인하고 완료를 클릭하십시오.
  7. Java 편집기에서 Audit.java에 대해 기본 코드를 이 코드로 바꾼 후 CTRL+S를 눌러 저장하십시오.
    // This program may be used, executed, copied, modified and distributed
    // without royalty for the purpose of developing, using, marketing, or distributing.
    
    package com.ibm.example.websphere.ejb3sample.counter;
    
    
    import java.io.Serializable;
    
    import javax.interceptor.AroundInvoke;
    import javax.interceptor.InvocationContext;
    
    
    public class Audit implements Serializable {
    
        private static final long serialVersionUID = 4267181799103606230L;
    
        @AroundInvoke
        public Object methodChecker (InvocationContext ic)
        throws Exception
        {
            System.out.println("Audit:methodChecker - About to execute method: " + ic.getMethod());
            Object result = ic.proceed();
            return result;
        }
    }
  8. Java 편집기에서 StatelessCounterBean 클래스를 열고 이 코드를 바꾸십시오.
    public class StatelessCounterBean {
    
    
    }
    위 코드를 다음 코드로 바꾸십시오.
    public class StatelessCounterBean implements LocalCounter, RemoteCounter {
        private static final String CounterDBKey = "PRIMARYKEY";
    
        // Use container managed persistence - inject the EntityManager
        @PersistenceContext (unitName="Counter")
        private EntityManager em;
        
        public int increment()
        {
            int result = 0;
            
            try {
    
                JPACounterEntity counter = em.find(JPACounterEntity.class, CounterDBKey);
    
                if ( counter == null ) {
                    counter = new JPACounterEntity();
                    counter.setPrimaryKey(CounterDBKey);
                    em.persist( counter );
                }
    
                counter.setValue( counter.getValue() + 1 );
                em.flush();
                em.clear();
    
                result = counter.getValue();
    
            } catch (Throwable t) {            
                System.out.println("StatelessCounterBean:increment - caught unexpected exception: " + t);
                t.printStackTrace();
            }
    
            return result;
        }
    
    
        public int getTheValue()
        {
            int result = 0;
    
            try {
                JPACounterEntity counter = em.find(JPACounterEntity.class, CounterDBKey);
    
                if ( counter == null ) {
                    counter = new JPACounterEntity();
                    em.persist( counter );
                    em.flush();
                }
    
                em.clear();
    
                result = counter.getValue();
            } catch (Throwable t) {
                System.out.println("StatelessCounterBean:increment - caught unexpected exception: " + t);
                t.printStackTrace();
            }
    
            return result;
        }
    }
    CTRL+S를 눌러 저장하십시오.
  9. public class StatelessCounterBean 행 옆의 빠른 수정사항 아이콘을 마우스 오른쪽 단추로 클릭하고 빠른 수정사항을 선택한 후 인터페이스 'LocalCounter' 작성을 선택하고 새 Java 인터페이스 대화 상자에서 완료를 클릭하십시오.
    로컬 카운터
오류
  10. 사용자의 LocalCounter.java 클래스가 Java 편집기에서 열립니다. 모든 코드를 이 코드로 바꾼 후 CTRL+S를 눌러 저장하십시오.
    // This program may be used, executed, copied, modified and distributed
    // without royalty for the purpose of developing, using, marketing, or distributing.
    
    package com.ibm.example.websphere.ejb3sample.counter;
    
    import javax.ejb.Local;
    
    @Localpublic interface LocalCounter {
        		public int increment();
        			public int getTheValue();
    }
  11. Java 편집기에서 StatelessCounterBean.java 클래스로 돌아가십시오.
  12. public class StatelessCounterBean 행 옆의 빠른 수정사항 아이콘을 마우스 오른쪽 단추로 클릭하고 빠른 수정사항을 선택한 후 인터페이스 'RemoteCounter' 작성을 선택하십시오. 새 Java 인터페이스 대화 상자에서 완료를 클릭하십시오. Java 편집기에서 RemoteCounter.java class가 열릴 때, 모든 코드를 이 코드로 바꾸고 CTRL+S를 눌러 저장하십시오.
    // This program may be used, executed, copied, modified and distributed
    // without royalty for the purpose of developing, using, marketing, or distributing.
    
    package com.ibm.example.websphere.ejb3sample.counter;
    
    import javax.ejb.Remote;
    
    @Remote
    public interface RemoteCounter { 
        		public int increment();
        			public int getTheValue();
    }
  13. Java 편집기에서 StatelessCounterBean.java 클래스로 돌아가십시오.
  14. @PersistenceContext 옆에 있는 빠른 수정사항 아이콘을 마우스 오른쪽 단추로 클릭하고 빠른 수정사항을 선택하십시오. 'PersistenceContext'(javax.persistence) 가져오기를 선택하고 CTRL+S를 눌러 저장하십시오.
  15. private EntityManager em; 행 옆의 빠른 수정사항 아이콘을 마우스 오른쪽 단추로 클릭하고 빠른 수정사항을 선택하십시오. 'EntityManager'(javax.persistence) 가져오기를 선택하고 CTRL+S를 눌러 저장하십시오.
  16. JPACounterEntity 옆에 있는 빠른 수정사항 아이콘을 마우스 오른쪽 단추로 클릭하고 빠른 수정사항을 선택하십시오. 'JPACounterEntity' 클래스 작성을 선택하십시오. 새 클래스 마법사 페이지에서 기본값을 승인하고 완료를 클릭하십시오.
이제 학습 1.3, 데이터 지속성을 위한 엔티티 클래스 및 데이터베이스 작성으로 이동할 준비가 되었습니다.
< 이전 | 다음 >
주제 유형을 표시하는 아이콘 학습서 학습 주제
Information Center의 이용 약관 | 피드백

시간소인 아이콘 마지막 업데이트 날짜: 2014-05-22

파일 이름: exer12ejb3.html