2011-03-05 3 views
0

저는 J2EE/EJB 필드의 초보자입니다. 몇 가지 기본 예제를 따르고 있습니다. 나는 2 개의 숫자를 합친 매우 간단한 클래스를 구현했다. 나는 집과 원격 인터페이스와 엔터 프라이즈 빈 (stateless) 자체를 가지고있다.EJB + JSP : 홈 인터페이스에서 원격 객체를 만들 수 없습니다.

Adder.java //Remote interface 
AdderHome.java //Home interface 
AdderBean.java //The EJB class 

EJB 응용 프로그램으로 테스트 할 때 모든 것이 완벽하게 작동합니다. 하지만 이제는 JSP 페이지로 테스트하고 싶지만 원격 인터페이스가 홈 인터페이스에서 인스턴스화되는 시점에 오류가 발생합니다. 실제로 출력이 없습니다. 시간에

: 나는 보스 4.

으로 J2EE 1.4을 사용하고 다음은 JSP 페이지의 코드입니다. 한 줄만 출력 할 수 있습니다.

<%@page import="javax.naming.*" %> 
<%@page import="javax.rmi.PortableRemoteObject" %> 
<%@page import="java.util.Properties" %> 
<%@page import="com.lucasmariano.*" %> 

<% 
     //Preparing the properting to be put in the InitialContext 
     Properties properties = new Properties(); 
     properties.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory"); 
     properties.put(Context.PROVIDER_URL, "localhost:1099"); 

     try { 
      //Get an Initial Context    
      InitialContext jndiContext = new InitialContext(properties); 
      System.out.println("got context");    

      //get a reference to the bean 
      Object ref = jndiContext.lookup("Adder"); 
      System.out.println("got reference"); 


      //Get a reference to this to the bean's home interface 
      AdderHome home = (AdderHome) PortableRemoteObject.narrow(ref, AdderHome.class); 
      out.println("GETTING OBJECT <BR />"); 

      //create an Adder object from the Home interface 

      //###### HERE IS THE PROBLEM!!! ####### 
      Adder adder = home.create(); 
      out.println("ADDER OBJECT CREATED <BR />"); 
      out.println("2 + 5 = " + adder.add(2,5)); 

     }catch(Exception e){ 
      System.out.println(e.toString()); 
     } 
    %> 

web.xml에 새로운 값을 추가해야합니까?

답변

1

나는 Duffymo에 동의합니다. 네가하는 일은 Just Wrong이다.

EJB는 훌륭한 기술이지만 EJB2는 완전히 악의적이었습니다. 상아탑에 설계된 유일한 목표는 개발자의 삶을 가능한 한 어렵게 만드는 것입니다.

으로 EJB2를 시작할 이유가 없습니다. EJB2를 배울 수있는 유일한 이유는 EJB2로 작성된 기존의 일부 기존 응용 프로그램을 유지해야 할 때입니다 (그러나 다른 작업을 찾도록 권장합니다).

EJB3는 버전이 1 개 더 높지만 완전히 다른 것입니다. 그것은 쉽고, 가볍고, 매우 논리적이며 많은 커뮤니티 피드백을 얻었습니다. 그러나 EJB3조차 꽤 오래되었습니다. 현재 버전은 Glassfish v3.1, JBoss AS 6 또는 Resin 4 (Resin을 사용하면 EJB3.1 Lite +를 사용할 수 있음)와 함께 사용할 수있는 EJB3.1입니다.

+0

사실 저는 2002 년에 출판 된 책을 팔로우하고 있습니다. 나는 이런 식으로 모든 것이 완전히 바뀌 었다고 상상하지 못했다. (프로그래밍 언어에 관한 것이지만 시간이 지남에 따라 많이 달라진다. uptodate하기 위해 EJB3와 EJB3.1에 관한 자료를 찾을 것입니다. 고마워. – LucasM

0

나는 이런 식으로하지 않는 것이 좋습니다. JSP의 스크립틀릿은 눈살을 찌푸리게합니다.

어떤 Java EE 애플리케이션 서버를 사용하고 있습니까? Java EE 5 이상이 되었길 바랍니다. 이전 EJB 표준으로 시작하는지 궁금합니다.

+0

답변 해 주셔서 감사합니다. EJB + JSP를 사용하는 첫 번째 앱이라 할지라도 그 방법이 최선의 방법은 아니라는 점을 잘 알고 있습니다. 나는 단지 일하는 것을보고 싶다. 어쨌든 JBoss 4에서 J2EE 1.4를 사용하고 있습니다. Netbeans 6.9.1도 사용하고 있습니다. 시간 : 홈/원격 인터페이스와 관련하여 web.xml에 무언가를 추가해야합니까? – LucasM

+0

아마도 은 강장제입니다. http://javahowto.blogspot.com/2010/07/sample-webxml-servlet-30-with-ejb-ref.html – duffymo

관련 문제