Получите исключение при использовании инъекции с простым проектом HelloEJB - PullRequest
0 голосов
/ 02 апреля 2012

Я сейчас изучаю EJB и у меня возникла проблема при тестировании функциональности Injection.Вот мой код (я создаю проект EJB в Eclipse).

Я запускаю EJB со встроенным Glassfish и запускаю тест (основной) независимо, но всегда получаю это исключение:

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 голосов
/ 04 апреля 2012

Трассировка стека предполагает, что вы напрямую запустили основной метод.Чтобы использовать инъекцию в основном классе, необходимо использовать контейнер клиента приложения .

...