2012-12-11 6 views
0

임은 책에서 직접 예제를 작성하려고 시도했지만, 책의 코드는 작동하지 않습니다. 이이 인터페이스를JBoss AS 5.0.x에 EJB가 배포되지 않았습니다.

@Stateless 
@RemoteBinding(jndiBinding="remote/MailerEJB") 

public class MailerBean implements Mailer {... } 

를 구현하는 EJB입니다 그리고 이것은 빈을 조회하려고 클라이언트 응용 프로그램입니다

@Remote 
public interface Mailer { 

    public void sendMail(String aToEmailAddr, 
         String aSubject, String aBody); 

} 

:

내 인터페이스입니다.
public class MailClient { 
    public static void main(String[] args) throws Exception 
     { 
      InitialContext ctx = new InitialContext(); 
      Mailer mailer = (Mailer) ctx.lookup("remote/MailerEJB"); 


     } 

} 

난은 MailClient 클래스 필자를 실행하려고

예외 다음있어

Exception in thread "main" javax.naming.NameNotFoundException: remote not bound 

나는 또한 빌드 경로에 추가 jndi.properties 파일을 가지고 있고, 그것은이>

처럼 보인다
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory 
java.naming.provider.url=jnp://localhost:1099 
java.naming.factory.url.pkgs=org.jnp.interfaces 

jmx-console에서도 원격/MailerEJB Bean을 볼 수 없습니다.

임 jboss-5.0.1.GA가 + JBDS는 + 자바 1.7.0

누군가가 나를 도울 수 사용하고 계십니까?

+0

'java.naming.factory.url.pkgs'를'org.jboss.naming.client'로 설정하면 도움이됩니까? –

답변

1

우선, EJB가 JBoss에 올바르게 배치되었는지와 바인딩 이름이 지정되었는지 확인해야합니다. 따라서 JMX 콘솔의 JNDIView에서 해당 Bean을 볼 수 없다면 반드시 배포해야합니다 문제. 바인딩 경우, 귀하의 경우에는

EJBBindingName - EJB3.x Default Remote Business Interface 

: 유사한 줄을 찾습니다 올바르게 당신이 EJB (당신이 EJB-JAR 또는 귀를) 배포하는 순간에 JBoss의 로그를 확인하실 수 있습니다 배포되어 있는지 확인하려면 당신이 올바른 정의했다, 그것은해야한다 :

remote/MailerEJB - EJB3.x Default Remote Business Interface 

이 줄은 EJB에 주어진 실제 JNDI 이름을 나타내며, 그것은 당신이 당신의 원격 호출에 사용했습니다 사람입니다.

@Stateless 
@RemoteBinding(jndiBinding="remote/MailerEJB") 
public class MailerBean implements Mailer {... } 

또한 this post에서 간단한에서 EJB로 원격 호출을하는 방법에 대한 지침을 찾을 수 있습니다

한편

, 주석 및 클래스 정의 사이의 라인을 제거하려고 명령 행 Java 프로그램.

+0

jmx-console이나 jboss 서버 로그에서 본 적이 없으므로 내 EJB가 배포되지 않았는지 확인하십시오. –

+0

그런 경우 문제는 실제로 EJB에 대한 원격 액세스가 아니라 EJB 자체에 있습니다. EJB를 배포 할 때 적어도 오류가 있으면 로그 파일에 무엇인가가 표시되어야합니다. 로그 파일에서 배포 오류를 확인할 수 있습니까? – Toni

+0

문제가 있습니다.이 로그 파일에는이 EJB에 관한 정보가 전혀 없습니다. http://pastebin.com/ehGUCbp7. 이러한 주석이 완전히 무시 된 것 같습니다. –