2012-04-02 8 views
0

Ich lerne jetzt EJB und bekam ein Problem beim Testen der Injection-Funktionalität. Hier ist mein Code (Ich erstelle ein EJB-Projekt in Eclipse).Erhalten Ausnahme, wenn die Injektion mit einem einfachen HelloEJB-Projekt

Ich betreibe das EJB mit eingebetteten Glassfish, und führen Sie den Test (Haupt-) unabhängig, aber immer diese Ausnahme erhalten:

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

ich jemand hoffe mir dabei helfen kann. Vielen Dank.

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(); 
     } 

    } 

} 

Antwort

0

Der Stack-Trace weist darauf hin, dass Sie die Hauptmethode direkt gestartet haben. Um die Injektion in der Hauptklasse zu verwenden, müssen Sie die application client container verwenden.

Verwandte Themen