Ejb3 - 使用无接口视图访问本地企业Bean

时间:2015-11-18 13:58:00

标签: ejb-3.1 stateless-session-bean

我正在尝试学习EJB3, 我创建了一个只有bean类的EJB项目:

package com;
import javax.ejb.Local;
import javax.ejb.Stateless;

 @Stateless
 @LocalBean
 public class MyBean {

 public MyBean() {
    // TODO Auto-generated constructor stub
  }
public String getMessage(){
    return "Hello";
  };

}

我在Jboss 6上部署了这个项目,然后我创建了一个Java项目(在构建路径中添加上面的ejbProject和Jboss-client.jar来进行RMI调用)。

进行测试,这是我创建的类:

  import javax.ejb.EJB;
  import javax.naming.Context;
  import javax.naming.InitialContext;
  import javax.naming.NamingException;
  import com.MyBean;

public class LanceProgram {
 // @EJB
 //public static MyBean mybean;

public static void main(String[] args)  {
    Context ctx;
    try {
        ctx = new InitialContext();
        MyBean exampleBean = (MyBean) ctx.lookup("MyBean");

        System.out.println(exampleBean.getMessage());
    } catch (NamingException e) {

        e.printStackTrace();
    }

  }

 }

通常,在运行时,我应该引用MyBean,但它是null并且我有这个错误消息(使用JNDI查找):

Exception in thread "main" java.lang.ClassCastException:       org.jnp.interfaces.NamingContext cannot be cast to com.MyBean
at LanceProgram.main(LanceProgram.java:17)

使用EJB注入时,我有一个NullPointerException!

这是我的jndi.properties文件规范:

java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.provider.url=localhost:1099
java.naming.factory.url.pkgs=org.jboss.ejb.client.naming

我正在尝试调用一个没有实现接口的bean。 谢谢你的帮助

0 个答案:

没有答案