ECLIPSE 建立分布式 EJB 项目的基本过程Word格式文档下载.docx

上传人:b****5 文档编号:18787561 上传时间:2023-01-01 格式:DOCX 页数:22 大小:810.35KB
下载 相关 举报
ECLIPSE 建立分布式 EJB 项目的基本过程Word格式文档下载.docx_第1页
第1页 / 共22页
ECLIPSE 建立分布式 EJB 项目的基本过程Word格式文档下载.docx_第2页
第2页 / 共22页
ECLIPSE 建立分布式 EJB 项目的基本过程Word格式文档下载.docx_第3页
第3页 / 共22页
ECLIPSE 建立分布式 EJB 项目的基本过程Word格式文档下载.docx_第4页
第4页 / 共22页
ECLIPSE 建立分布式 EJB 项目的基本过程Word格式文档下载.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

ECLIPSE 建立分布式 EJB 项目的基本过程Word格式文档下载.docx

《ECLIPSE 建立分布式 EJB 项目的基本过程Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《ECLIPSE 建立分布式 EJB 项目的基本过程Word格式文档下载.docx(22页珍藏版)》请在冰豆网上搜索。

ECLIPSE 建立分布式 EJB 项目的基本过程Word格式文档下载.docx

publicinterfaceHelloServiceLocal{

importjavax.ejb.Stateless;

/**

*SessionBeanimplementationclassHelloService

*/

@Stateless

publicclassHelloServiceimplementsHelloServiceRemote,HelloServiceLocal{

/**

*Defaultconstructor.

publicHelloService(){

//TODOAuto-generatedconstructorstub

}

加入我们的一个测试方法getHello()和addNum()

publicStringgetHello(Stringname);

publicIntegeraddNum(Integerx,Integery);

publicStringgetHello(Stringname);

publicStringgetHello(Stringname){

return"

Hello"

+name;

publicIntegeraddNum(Integerx,Integery){

returnx+y;

1.3部署服务端源代码

将项目导出成JAR包,然后拷贝到JBOSS部署目录下

点browser,选中导出的目的地---JBOSS的部署目录

也可以导出到桌面上,然后COPY入JBOSS的部署目录

总之,结果是

启动JBOSS

可以在ECLIPSE里启动,也可以直接到JBOSS/bin目录下启动JBOSS

可以看到下面的启动日志

10:

38:

41,781INFO[JBossASKernel]Addedbean(jboss.j2ee:

jar=helloEJBServer.jar,name=HelloService,service=EJB3)toKernelDeploymentof:

helloEJBServer.jar

41,796INFO[EJB3EndpointDeployer]DeployAbstractBeanMetaData@18ddef7{name=jboss.j2ee:

jar=helloEJBServer.jar,name=HelloService,service=EJB3_endpointbean=org.jboss.ejb3.endpoint.deployers.impl.EndpointImplproperties=[container]constructor=nullautowireCandidate=true}

42,234INFO[SessionSpecContainer]Startingjboss.j2ee:

jar=helloEJBServer.jar,name=HelloService,service=EJB3

42,250INFO[EJBContainer]STARTEDEJB:

.sample.HelloServiceejbName:

HelloService

42,468INFO[JndiSessionRegistrarBase]BindingthefollowingEntriesinGlobalJNDI:

HelloService/remote-EJB3.xDefaultRemoteBusinessInterface

HelloService/remote-.sample.HelloServiceRemote-EJB3.xRemoteBusinessInterface

HelloService/local-EJB3.xDefaultLocalBusinessInterface

HelloService/local-.sample.HelloServiceLocal-EJB3.xLocalBusinessInterface

检查部署情况,访问http:

//localhost:

8080,点击进入JMXConsole

再点击进入service=JNDIView

在JNDIVIEW界面下,在list行,点击invoke按钮

可以在列出bean里面,在GlobalJNDINamespace下,看到部署上去的HelloServicebean和它的remote接口和local接口

2.建立/部署EJBCLIENT(客户端)项目

2.1建立EJBCLIENT项目

建议一个普通的WAR包项目(ECLIPSE下的DynamicWebProject项目)

2.2导入JBOSSEJB客户端库入项目buildpath

到JBOSS工作目录下的client子目录

将里面的所有文件都拷贝入WAR包的WEB-INF/lib目录下

2.3将服务端项目里的接口文件拷入客户端项目(当然更正规的做法是做成jar包放入buildpath)

注意:

1.只拷接口,不要拷实现类

2.不仅接口名不能变化,包名也不能变化,要保持一致

2.4建立EJBAPPLICATION客户端测试代码(可以直接命令行执行的客户端)

package.sample.testclient;

importjava.util.Hashtable;

importjavax.naming.Context;

importjavax.naming.InitialContext;

importjavax.naming.NamingException;

import.sample.HelloServiceRemote;

 

publicclassTestAppClient{

*@paramargs

*@throwsNamingException

publicstaticvoidmain(String[]args){

Hashtableproperties=newHashtable();

//配置驱动程序,JBoss特定的

properties.put(Context.INITIAL_CONTEXT_FACTORY,

"

org.jnp.interfaces.NamingContextFactory"

);

//配置jndiURL,这个URL格式没有规定,各个服务器各自一套

properties.put(Context.PROVIDER_URL,"

jnp:

//localhost"

try{

InitialContextctx=newInitialContext(properties);

HelloServiceRemotedao=

(HelloServiceRemote)ctx.lookup("

HelloService/remote"

System.out.println(dao.getHello("

mac2"

));

System.out.println("

3+13="

+dao.addNum(3,13));

ctx.close();

}catch(NamingExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

执行这个程序(RunasJavaApplication)

Hellomac2

3+13=16

2.5建立EJBWEB客户端测试代码(可以网页客户端)

在WebContent下建立jsp文件

<

%@pagelanguage="

java"

contentType="

text/html;

charset=UTF-8"

pageEncoding="

UTF-8"

%>

%@pageimport="

java.util.*,

javax.naming.Context,

javax.naming.InitialContext,

javax.naming.NamingException,

.sample.HelloServiceRemote"

%>

!

DOCTYPEhtmlPUBLIC"

-//W3C//DTDHTML4.01Transitional//EN"

"

http:

//www.w3.org/TR/html4/loose.dtd"

>

html>

head>

metahttp-equiv="

Content-Type"

content="

title>

Inserttitlehere<

/title>

/head>

body>

%

Hashtableproperties=newHashtable();

properties.put(Context.INITIAL_CONTEXT_FACTORY,"

properties.put(Context.PROVIDER_URL,"

//127.0.0.1"

try{

InitialContextctx=newInitialContext(properties);

HelloServiceRemotedao=(HelloServiceRemote)ctx.lookup("

out.println(dao.getHello("

)+"

br/>

hr/>

out.println("

ctx.close();

}catch(NamingExceptione){

e.printStackTrace();

}

%>

/body>

/html>

将项目加载到TOMCAT下

由于服务端项目是加载到JBOSS下,因此等于一台机器同时起两个应用服务器,有可能出现8080端口冲突,需要将TOMCAT的端口改成别的,避免和JBOSS的8080冲突

测试,访问http:

8190/helloEJBClient/hello.jsp

2.6建立EJBWEBMVC客户端测试代码(以简单的SERVLET代替)

本来想做个struts2的例子,但考虑要增加很多步骤,与本文力求简单初级使用的宗旨不符.所以这里以基础的servlet代替(尽管现在已经很少有人用servlet了)

建立servlet类

package.sample.testjsp.servlet;

importjava.io.IOException;

importjava.io.PrintWriter;

importjavax.servlet.ServletException;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

@SuppressWarnings("

serial"

publicclassHelloServiceServletextendsHttpServlet{

@Override

protectedvoiddoGet(HttpServletRequestreques,HttpServletResponseresponse)

throwsServletException,IOException{

this.doPost(reques,response);

protectedvoiddoPost(HttpServletRequestreques,HttpServletResponseresponse)

System.out.println("

doPost"

PrintWriterout=response.getWriter();

properties.put(Context.INITIAL_CONTEXT_FACTORY,"

HelloServiceRemotedao=

(HelloServiceRemote)ctx.lookup("

out.println(dao.getHello("

macServlet"

out.println("

}

TOMCAT重启

8190/helloEJBClient/HelloWorldServlet

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 思想汇报心得体会

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1