ECLIPSE 建立分布式 EJB 项目的基本过程

上传人:ji****72 文档编号:37539812 上传时间:2018-04-18 格式:DOC 页数:20 大小:915KB
返回 下载 相关 举报
ECLIPSE 建立分布式 EJB 项目的基本过程_第1页
第1页 / 共20页
ECLIPSE 建立分布式 EJB 项目的基本过程_第2页
第2页 / 共20页
ECLIPSE 建立分布式 EJB 项目的基本过程_第3页
第3页 / 共20页
ECLIPSE 建立分布式 EJB 项目的基本过程_第4页
第4页 / 共20页
ECLIPSE 建立分布式 EJB 项目的基本过程_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《ECLIPSE 建立分布式 EJB 项目的基本过程》由会员分享,可在线阅读,更多相关《ECLIPSE 建立分布式 EJB 项目的基本过程(20页珍藏版)》请在金锄头文库上搜索。

1、ECLIPSE 建立分布式建立分布式 EJB 项目的基本过程项目的基本过程环境要求环境要求Eclipse JavaEE ( version 3.6) JDK 1.6 JBOSS 5.1.0 TOMCAT 6.0.14设计拓扑设计拓扑步骤步骤1.建立建立/部署部署 EJB SERVER 项目项目1.1 建立 EJB SERVER 项目点完成1.2 写入服务端源代码点完成自动生成的源代码如下: package .sample;import javax.ejb.Remote;Remotepublic interface HelloServiceRemote package .sample;impor

2、t javax.ejb.Local;Localpublic interface HelloServiceLocal package .sample;import javax.ejb.Stateless;/* Session Bean implementation class HelloService*/Statelesspublic class HelloService implements HelloServiceRemote, HelloServiceLocal /* Default constructor. */public HelloService() / TODO Auto-gene

3、rated constructor stub加入我们的一个测试方法 getHello()和addNum() package .sample;import javax.ejb.Remote;Remotepublic interface HelloServiceRemote public String getHello(String name);public Integer addNum(Integer x,Integer y);package .sample;import javax.ejb.Local;Localpublic interface HelloServiceLocal public

4、 String getHello(String name);public Integer addNum(Integer x,Integer y);package .sample;import javax.ejb.Stateless;/* Session Bean implementation class HelloService*/Statelesspublic class HelloService implements HelloServiceRemote, HelloServiceLocal /* Default constructor. */public HelloService() /

5、 TODO Auto-generated constructor stubpublic String getHello(String name)return “Hello “+ name;public Integer addNum(Integer x,Integer y)return x + y;1.3 部署服务端源代码 将项目导出成 JAR 包,然后拷贝到 JBOSS 部署目录下点 browser,选中导出的目的地-JBOSS 的部署目录也可以导出到桌面上,然后 COPY 入 JBOSS 的部署目录 总之,结果是启动 JBOSS 可以在 ECLIPSE 里启动,也可以直接到 JBOSS /b

6、in 目录下启动 JBOSS 可以看到下面的启动日志 10:38:41,781 INFO JBossASKernel Added bean(jboss.j2ee:jar=helloEJBServer.jar,name=HelloService,service=EJB3) to KernelDeployment of: helloEJBServer.jar10:38:41,796 INFO EJB3EndpointDeployer Deploy AbstractBeanMetaData18ddef7name=jboss.j2ee:jar=helloEJBServer.jar,name=Hello

7、Service,service=EJB3_endpoint bean=org.jboss.ejb3.endpoint.deployers.impl.EndpointImpl properties=container constructor=null autowireCandidate=true10:38:42,234 INFO SessionSpecContainer Starting jboss.j2ee:jar=helloEJBServer.jar,name=HelloService,service=EJB310:38:42,250 INFO EJBContainer STARTED EJ

8、B: .sample.HelloService ejbName: HelloService10:38:42,468 INFO JndiSessionRegistrarBase Binding the following Entries in Global JNDI:HelloService/remote - EJB3.x Default Remote Business InterfaceHelloService/remote-.sample.HelloServiceRemote - EJB3.x Remote Business InterfaceHelloService/local - EJB

9、3.x Default Local Business InterfaceHelloService/local-.sample.HelloServiceLocal - EJB3.x Local Business Interface检查部署情况,访问 http:/localhost:8080,点击进入 JMX Console再点击进入 service=JNDIView在 JNDI VIEW 界面下,在 list 行,点击 invoke 按钮可以在列出 bean 里面,在 Global JNDI Namespace 下,看到部署上去的 HelloService bean 和它 的 remote 接口

10、和 local 接口2.建立建立/部署部署 EJB CLIENT(客户端客户端)项目项目2.1 建立 EJB CLIENT 项目 建议一个普通的 WAR 包项目 (ECLIPSE 下的 Dynamic Web Project 项目)2.2 导入 JBOSS EJB 客户端库入项目 buildpath 到 JBOSS 工作目录下的 client 子目录将里面的所有文件都拷贝入 WAR 包的 WEB-INF/lib 目录下2.3 将服务端项目里的接口文件拷入客户端项目(当然更正规的做法是做成 jar 包放入 buildpath)注意: 1.只拷接口只拷接口,不要拷实现类不要拷实现类 2. 不仅接口

11、名不能变化不仅接口名不能变化,包名也不能变化包名也不能变化,要保持一致要保持一致2.4 建立 EJB APPLICATION 客户端测试代码(可以直接命令行执行的客户端) package .sample.testclient;import java.util.Hashtable;import javax.naming.Context;import javax.naming.InitialContext;import javax.naming.NamingException;import .sample.HelloServiceRemote;public class TestAppClient

12、/* param args* throws NamingException */public static void main(String args) Hashtable properties = new Hashtable();/ 配置驱动程序, JBoss 特定的 properties.put(Context.INITIAL_CONTEXT_FACTORY,“org.jnp.interfaces.NamingContextFactory“);/ 配置 jndi URL,这个 URL 格式没有规定,各个服务器各自一套 properties.put(Context.PROVIDER_URL,

13、 “jnp:/localhost“); try InitialContext ctx = new InitialContext(properties);HelloServiceRemote dao = (HelloServiceRemote) ctx.lookup(“HelloService/remote“);System.out.println(dao.getHello(“mac2“);System.out.println(“3 + 13 = “ +dao.addNum(3, 13);ctx.close(); catch (NamingException e) / TODO Auto-gen

14、erated catch blocke.printStackTrace(); 执行这个程序(Run as Java Application)Hello mac23 + 13 = 162.5 建立 EJB WEB 客户端测试代码(可以网页客户端) 在 WebContent 下建立 jsp 文件Insert title here“);out.println(“3 + 13 = “ +dao.addNum(3, 13);ctx.close(); catch (NamingException e) e.printStackTrace(); %将项目加载到 TOMCAT 下注意: 由于服务端项目是加载到

15、 JBOSS 下,因此等于一台机器同时起两个应用服务器,有可能 出现 8080 端口冲突,需要将 TOMCAT 的端口改成别的,避免和 JBOSS 的 8080 冲突测试,访问 http:/localhost:8190/helloEJBClient/hello.jsp2.6 建立 EJB WEB MVC 客户端测试代码(以简单的 SERVLET 代替) 本来想做个struts2的例子,但考虑要增加很多步骤,与本文力求简单初级使用的宗旨不符.所 以这里以基础的servlet代替(尽管现在已经很少有人用servlet了) 建立 servlet 类package .sample.testjsp.se

16、rvlet; import java.io.IOException; import java.io.PrintWriter; import java.util.Hashtable;import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号