< 이전 | 다음 >

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

레슨 1.2에서는 StatelessCounterBean.java 클래스에 대한 필수 클래스 및 인터페이스 작성 단계를 설명합니다.
시작하기 전에 레슨 1.1을 완료해야 합니다.
이 레슨에서는 다음을 수행합니다.
  1. Java 편집기에서 StatelessCounterBean.java 클래스를 여십시오.
  2. @Stateless 어노테이션 아래에 @Interceptors를 입력하십시오.
  3. Ctrl+S를 눌러 저장하면 @Interceptors 행 옆에 빠른 수정사항 아이콘빠른 수정사항 아이콘이 표시됩니다. 빠른 수정사항 아이콘을 마우스 오른쪽 단추로 클릭하고 빠른 수정사항을 선택하십시오.
  4. javax.interceptor.Interceptors 가져오기를 선택하고 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 클래스를 열고 이 코드를 바꾼 후 CTRL+S를 눌러 저장하십시오.
    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;
        }
    }
  9. public class StatelessCounterBean 행 옆에 있는 빠른 수정사항 아이콘을 마우스 오른쪽 단추로 클릭하고 'LocalCounter' 인터페이스 작성을 선택하십시오.
    로컬 카운터 오류
  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. 원격 카운터 인터페이스를 작성하려면 로컬 카운터 작성 단계를 따르고 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();
    }
  13. Java 편집기에서 StatelessCounterBean.java 클래스로 돌아가십시오.
  14. @PersistenceContext 옆에 있는 빠른 수정사항 아이콘을 마우스 오른쪽 단추로 클릭하고 빠른 수정사항을 선택하십시오. 'PersistenceContext'(javax.persistence) 가져오기를 선택하고 CTRL+S를 눌러 저장하십시오.
  15. @EntityManager 옆에 있는 빠른 수정사항 아이콘을 마우스 오른쪽 단추로 클릭하고 빠른 수정사항을 선택하십시오. 'EntityManager'(javax.persistence) 가져오기를 선택하고 CTRL+S를 눌러 저장하십시오.
  16. JPACounterEntity 옆에 있는 빠른 수정사항 아이콘을 마우스 오른쪽 단추로 클릭하고 빠른 수정사항을 선택하십시오. 'JPACounterEntity.java' 클래스 작성을 선택하십시오. 새 클래스 마법사 페이지에서 기본값을 승인하고 완료를 클릭하십시오.
이제 연습 1.3, 데이터 지속성을 위한 엔티티 클래스 및 데이터베이스 작성으로 이동할 준비가 되었습니다.
< 이전 | 다음 >

피드백