2012-02-01 5 views
0

통신 채널의 다른 쪽에서 생성 된 EJB3 서비스에 대한 포인터 (JNDI)가 있습니다. 즉 고객 애플리케이션 서버에서 생성되었습니다. 이제 EJB3을 호출하기 위해 ADF 기반 인터페이스를 수행해야합니다. 인터페이스에 문제가 없지만 EJB3를 호출하는 방법에 어려움을 겪고 있습니다.EJB3 클라이언트가있는 Oracle ADF

public class SessionEJBClient { 
    public static void main(String[] args) { 
     try { 
      final Context context = getInitialContext(); 
      SessionEJB sessionEJB = (SessionEJB)context.lookup("MyApp-SessionEJB#org.test.SessionEJB"); 
     } catch (CommunicationException ex) { 
      System.out.println(ex.getClass().getName()); 
      System.out.println(ex.getRootCause().getLocalizedMessage()); 
      System.out.println("\n*** A CommunicationException was raised. This typically\n*** occurs when the target WebLogic server is not running.\n"); 
     } catch (Exception ex) { 
      ex.printStackTrace(); 
     } 
    } 

    private static Context getInitialContext() throws NamingException { 
     Hashtable env = new Hashtable(); 
     // WebLogic Server 10.x connection details 
     env.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory"); 
     env.put(Context.PROVIDER_URL, "t3://serverhost:serverport"); 
     return new InitialContext(env); 
    } 
} 

을 또는 그 일을 어떤 다른 방법이 :이 클라이언트에 의해 만들어진 것처럼 나는 내 백업 콩에서해야 ? 또는 다른 말로하면 원격 EJB3를 참조하고 호출하는 적절한 방법은 무엇입니까?

10 배

답변

0

당신이 의미하는 경우 "와 MVC 패턴을 존중"다음 엔터티 개체를 무시하고 가장 좋은 방법을 보인다에서 EJB에 액세스. 그런 다음 VO를 사용하면 "정상적인"ADF BC Layer를 제공 할 수 있습니다. 그런 다음 Application Module을 작성하면 Data Control으로 노출되며이를 바탕으로 선언적으로 페이지를 작성할 수 있습니다. 그러나 ADFBC 레이어는 필요에 따라 너무 두꺼울 수 있습니다.

ADF BC를 사용하지 않으려면 EJB 주위의 Facade로 작동하고 호출을 위임하는 Stateless Session Bean을 다시 작성할 수 있습니다. 두 경우의 이점은 Business Logic (EJB라고 가정)을 View 레이어에서 분리하는 것이며, ADF에서는 ADF BC 또는 Session Bean 레이어에서 데이터 컨트롤을 만들어 ADF Faces 페이지의 기초로 사용할 수 있습니다 .

+0

이것은 모두 정상이지만 원격 EJB3을 호출하는 방법이나 원격 EJB3을 호출하는 방법이 필요합니다. 나는 예를 원해. – zmeda

+0

이 무슨 뜻입니까? http : //stackoverflow.com/questions/293835/how-to-call-remote-ejb-from-standalone-client 또는 this? http : //www.codeproject.com/Articles/ 25741/EJB-3-0-Remote-Session-Bean-Lookup - ADF와는 아무런 관련이 없음 - 표준 JEE – Joe

0

ADF는 POJO 또는 세션 EJB에서 작동 할 수 있습니다. 그러면 EJB를 호출하는 자바 레이어를 작성한 다음 Java 레이어를 ADF 데이터 컨트롤로 노출 한 다음 끌어다 놓아 ADF UI를 만들 수 있습니다. http://blogs.oracle.com/shay/2009/07/java_class_data_control_and_ad.html http://blogs.oracle.com/shay/2009/01/insert_update_for_jpaejb_30_wi.html

또는 당신은 오히려 당신이 EJB를 호출 관리 Bean을 작성하고 다음 ADF 결합 할 수있는 ADF 바인딩 레이어를 건너 뛸 경우 UI를 직접 콩에.

관련 문제