使用简单的HelloEJB项目注入时获取异常

时间:2012-04-02 18:24:19

标签: ejb code-injection

我现在正在学习EJB,并在测试注入功能时遇到了问题。这是我的代码(我在Eclipse中创建了一个EJB项目)。

我使用嵌入式Glassfish运行EJB,并独立运行测试(main),但始终会遇到此异常:

java.lang.NullPointerException
    at com.example.MainUsingInjection.runTest(MainUsingInjection.java:11)
    at com.example.MainUsingInjection.main(MainUsingInjection.java:20)

我希望有人能帮助我。非常感谢你。

HelloSessionBean.java

package com.example;

import javax.ejb.LocalBean;
import javax.ejb.Stateless;

@Stateless
@LocalBean
public class HelloSessionBean implements HelloSessionBeanRemote {

    public HelloSessionBean() {   }

    public void helloMethod() {
        System.out.println("Hello World!\n");
    }

}

HelloSessionBeanRemote.java

package com.example;

import javax.ejb.Remote;

@Remote
public interface HelloSessionBeanRemote {
    public void helloMethod();
}

MainUsingJnjection.java

package com.example;

import javax.ejb.EJB;

public class MainUsingInjection {

    @EJB(name="HelloSessionBean")
    public static HelloSessionBeanRemote bean;

    public void runTest() throws Exception {
        bean.helloMethod();
    }

    public static void main(String[] args) {
        MainUsingInjection cli = new MainUsingInjection();
        try {
            cli.runTest();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

}

1 个答案:

答案 0 :(得分:0)

堆栈跟踪表明您已直接启动main方法。要在主类中使用注入,您必须使用application client container