1.安装EJB是一个解压缩的过程,但须注意解压目录不能在有中文或空格的目录下;否则启动应用服务器时会出错。
2.第一个EJB应用
1).编写接口
public interface HelloEjb {
public String sayHello(String name); }2).实现接口
@Stateless//无状态Bean
@Remote(HelloEjb.class)//设置为远程Bean,注意是接口HelloEjb public class HelloEjbBean implements HelloEjb{ @Override public String sayHello(String name) { return name+"说:你好!"; } }3).编写测试类
public static void main(String[] args) {
try { Properties pos = new Properties(); pos.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory"); pos.setProperty("java.naming.provider.url", "localhost:1099"); InitialContext ctx = new InitialContext(pos); HelloEjb hello = (HelloEjb)ctx.lookup("HelloEjbBean/remote"); System.out.println(hello.sayHello("干露露")); } catch (NamingException e) { e.printStackTrace(); } }3.运行测试类
出现两个问题
1).log4j:WARN No appenders could be found for logger (org.jnp.interfaces.
解决方法是:把struts2或spring中log4j.properties复制到项目的src目录下。
2).javax.naming.NameNotFoundException: HelloEjbBean not bound
解决方法是:把接口和实现类打包成jar放入JBoss的jboss-6.1.0.Final\server\default\deploy目录下