< 이전 | 다음 >

학습 1.2: SingletonCounterBean.java 클래스의 필수 클래스 및 인터페이스 작성

학습 1.2에서는 SingletonCounterBean.java 클래스의 필수 클래스와 인터페이스를 작성하는 과정을 안내합니다.

시작하기 전에 학습 1.1을 완료해야 합니다.
이 학습에서는 다음을 수행합니다.
  1. Java 편집기에서 SingletonCounterBean.java 클래스를 여십시오.
  2. @Singleton 어노테이션에 @Interceptors를 입력하십시오.
  3. CTRL+S를 눌러서 저장하면 @Interceptors 행 옆에 빠른 수정사항 아이콘빠른 수정사항
아이콘이 표시됩니다. 빠른 수정사항 아이콘을 마우스 오른쪽 단추로 클릭하고 빠른 수정사항을 선택하십시오.
  4. 'Interceptors'(javax.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 편집기에서 SingletonCounterBean 클래스를 열고 이 코드를 바꾸십시오.
    public class SingletonCounterBean {
    
    
    }
    위 코드를 다음 코드로 바꾸십시오.
    public class SingletonCounterBean 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("SingletonCounterBean: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("SingletonCounterBean:increment - caught unexpected exception: " + t);
                t.printStackTrace();
            }
    
            return result;
        }
    }
    CTRL+S를 눌러 저장하십시오.
  9. 공용 클래스 SingletonCounterBean 행 옆의 빠른 수정사항 아이콘을 클릭하고 'LocalCounter' 인터페이스 작성을 선택하십시오.
    로컬 카운터 오류
  10. Java 인터페이스 페이지에서 기본값을 승인하고 완료를 클릭하십시오.
  11. 사용자의 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();
    }
  12. Java 편집기에서 SingletonCounterBean.java 클래스로 돌아가십시오.
  13. 공용 클래스 SingletonCounterBean 행 옆의 빠른 수정사항 아이콘을 클릭하고 'RemoteCounter' 인터페이스 작성을 선택하십시오. Java 인터페이스 페이지에서 기본값을 승인하고 완료를 클릭하십시오. RemoteCounter.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.Remote;
    
    @Remote
    public interface RemoteCounter { 
        		public int increment();
        			public int getTheValue();
    }
  14. Java 편집기에서 SingletonCounterBean.java 클래스로 돌아가십시오.
  15. @PersistenceContext 옆의 빠른 수정사항 아이콘을 마우스 오른쪽 단추로 클릭하고 빠른 수정사항을 선택하십시오. 'PersistenceContext'(javax.persistence) 가져오기를 선택하고 CTRL+S를 눌러 저장하십시오.
  16. @EntityManager 옆의 빠른 수정사항 아이콘을 마우스 오른쪽 단추로 클릭하고 빠른 수정사항을 선택하십시오. 'EntityManager'(javax.persistence) 가져오기를 선택하고 CTRL+S를 눌러 저장하십시오.
  17. JPACounterEntity 옆의 빠른 수정사항 아이콘을 마우스 오른쪽 단추로 클릭하고 빠른 수정사항을 선택하십시오. 'JPACounterEntity' 클래스 작성을 선택하십시오.
  18. Java 클래스 페이지에서 기본값을 승인하고 완료를 클릭하십시오.
이제 학습 1.3 데이터 지속성을 위해 엔티티 클래스 및 데이터베이스 작성으로 이동할 수 있습니다.
< 이전 | 다음 >
주제 유형을 표시하는 아이콘 학습서 학습 주제
Information Center의 이용 약관 | 피드백

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

파일 이름: exer12ejb31.html