本实例用到的工具
1. jboss5 (配置不做介绍,谷歌度娘都有)
2. MyEclipse 9
实例创建
1.EJB类创建
打开MyEclipse 9 中右上角如下选项
再新建一个EJB项目
新建后项目结构如下:
在
右击新建Interface,
本人新建的Interface如下:
package edw;
public interface HelloWorld {
public String sayHello(String who);
}
右击新建SessionBean:
package edw;
import javax.ejb.Remote;
import javax.ejb.Stateless;
/**
* Session Bean implementation class HelloWorldBean
*/
@Stateless
@Remote(HelloWorld.class)
public class HelloWorldBean implements HelloWorld {
/**
* Default constructor.
*/
public HelloWorldBean() {
// TODO Auto-generated constructor stub
}
/**
* @see HelloWorld#sayHello(String)
*/
public String sayHello(String who) {
// TODO Auto-generated method stub
return who + ",你好,欢迎使用ejb";
}
}
这里模式我选择了
2.客户端测试类创建
新建一个Java Project
EjbClient
测试主类:
package edw;
import java.util.Properties;
import javax.naming.InitialContext;
import javax.naming.NamingException;
public class HelloWorldEjbClient {
/**
* @param args
* @throws NamingException
*/
public static void main(String[] args) throws NamingException {
// TODO Auto-generated method stub
Properties props = new Properties();
props.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
props.setProperty("java.naming.provider.url", "localhost:1099");
props.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming");
InitialContext context = new InitialContext(props);
HelloWorld helloWorldEjb = (HelloWorld)context.lookup("HelloWorldBean/remote");
String strName = helloWorldEjb.sayHello("Edwards");
System.out.println(strName);
}
}
将上面创建的EJB中的接口文件存放至如下:
再builddpath,把jboss解压目录下的client文件夹下的
jbossall-client,jar 导入,到这里项目创建基本完成.
运行测试主类 HelloWorldEjbClient.java
备注:
lookup(url) 里面url 对应在jboss 里面的 namespace
如何在jboss 里面找到?
步骤如下:在浏览器输入localhost:8080 ---注意8080是默认一般有冲突, 需要修改
点击红色圈里的连接 进入,
再找到
点击下面按钮:
终于找到了:
心得:
其实我也是刚开始学EJB, 这个测试项目折腾了我3天时间, 因为不熟悉而且很多陌生问题,版本问题或配置等问题网上资料很杂粹,
换了很多版本如Jboss 5,6,7; 很纠结特别是jboss 7, 然后又换回jboss 5 ,
终于测试成功了, ^-^,虽然不算什么,但又一体验了成就感...
坚持相信 没有解决不了的问题, 只有找不到的解决方法!