本实例用到的工具
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 ,
终于测试成功了, ^-^,虽然不算什么,但又一体验了成就感...
坚持相信 没有解决不了的问题, 只有找不到的解决方法!