ejb3的依赖注入问题
最近看了一下ejb3 in action,其中有个关于依赖注入的问题一直没弄懂,在glassfish下是这样的,
package ejb3inaction.example;
import javax.ejb.Remote;
@Remote
public interface HelloUser {
public void sayHello(String name);
}
package ejb3inaction.example;
import javax.ejb.Stateless;
@Stateless
public class HelloUserBean implements HelloUser {
public void sayHello(String name) {
System.out.println("Hello " + name + " welcome to EJB 3 In Action!");
}
}
客户端的调用是这样的:
package ejb3inaction.example;
import javax.ejb.EJB;
public class HelloUserClient {
@EJB
private static HelloUser helloUser;
public static void main(String[] args) {
helloUser.sayHello("Curious George");
System.out.println("Invoked EJB successfully .. see server console for output");
}
}
不过在jboss4.2.2下的客户端的代码却变成了这样:
public class HelloUserClient {
private static HelloUser helloUser;
public static void main(String[] args) {
try {
Context context = new InitialContext();
helloUser = (HelloUser) context.lookup("chapter1/"
+ HelloUserBean.class.getSimpleName() + "/remote");
helloUser.sayHello("Curious George");
} catch (NamingException e) {
e.printStackTrace();
}
}
}
如果向上面那样用@EJB注解的话会报空指针异常,当然客户端的代码以JAR文件的形式发布在JBOSS容器内的,向各位高手指点!
[该贴被Hqiu于2009-02-08 22:41修改过]