ejb30+Weblogic+Jboss安装配置及入门例子图文详解.docx

上传人:b****4 文档编号:6344931 上传时间:2023-05-09 格式:DOCX 页数:28 大小:3.86MB
下载 相关 举报
ejb30+Weblogic+Jboss安装配置及入门例子图文详解.docx_第1页
第1页 / 共28页
ejb30+Weblogic+Jboss安装配置及入门例子图文详解.docx_第2页
第2页 / 共28页
ejb30+Weblogic+Jboss安装配置及入门例子图文详解.docx_第3页
第3页 / 共28页
ejb30+Weblogic+Jboss安装配置及入门例子图文详解.docx_第4页
第4页 / 共28页
ejb30+Weblogic+Jboss安装配置及入门例子图文详解.docx_第5页
第5页 / 共28页
ejb30+Weblogic+Jboss安装配置及入门例子图文详解.docx_第6页
第6页 / 共28页
ejb30+Weblogic+Jboss安装配置及入门例子图文详解.docx_第7页
第7页 / 共28页
ejb30+Weblogic+Jboss安装配置及入门例子图文详解.docx_第8页
第8页 / 共28页
ejb30+Weblogic+Jboss安装配置及入门例子图文详解.docx_第9页
第9页 / 共28页
ejb30+Weblogic+Jboss安装配置及入门例子图文详解.docx_第10页
第10页 / 共28页
ejb30+Weblogic+Jboss安装配置及入门例子图文详解.docx_第11页
第11页 / 共28页
ejb30+Weblogic+Jboss安装配置及入门例子图文详解.docx_第12页
第12页 / 共28页
ejb30+Weblogic+Jboss安装配置及入门例子图文详解.docx_第13页
第13页 / 共28页
ejb30+Weblogic+Jboss安装配置及入门例子图文详解.docx_第14页
第14页 / 共28页
ejb30+Weblogic+Jboss安装配置及入门例子图文详解.docx_第15页
第15页 / 共28页
ejb30+Weblogic+Jboss安装配置及入门例子图文详解.docx_第16页
第16页 / 共28页
ejb30+Weblogic+Jboss安装配置及入门例子图文详解.docx_第17页
第17页 / 共28页
ejb30+Weblogic+Jboss安装配置及入门例子图文详解.docx_第18页
第18页 / 共28页
ejb30+Weblogic+Jboss安装配置及入门例子图文详解.docx_第19页
第19页 / 共28页
ejb30+Weblogic+Jboss安装配置及入门例子图文详解.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

ejb30+Weblogic+Jboss安装配置及入门例子图文详解.docx

《ejb30+Weblogic+Jboss安装配置及入门例子图文详解.docx》由会员分享,可在线阅读,更多相关《ejb30+Weblogic+Jboss安装配置及入门例子图文详解.docx(28页珍藏版)》请在冰点文库上搜索。

ejb30+Weblogic+Jboss安装配置及入门例子图文详解.docx

ejb30+Weblogic+Jboss安装配置及入门例子图文详解

EJB3.0+Jboss/Weblogic安装部署及入门示例

一、安装部署Jboss服务器:

1、去官网下载jboss-4.2.2.GA.zip或jboss-5.1.0.GA.zip版本直接解压安装,放至相应目录。

例如D:

\Myeclipse\jboss

2、安装完后请在“系统变量”里添加JBOSS_HOME变量,值为Jboss的安装路径。

如下图

3、如果启动jboss出现例外(出现error),先看看jboss所用端口8080有没有被占

可以下载端口查看器(ActivePorts)进行检查,确定不是端口被占用,那很大可能是你的JDK安装不正确。

如果端口被占用可至jboss安装目录下

jboss-5.1.0.GA.zip版本D:

\Myeclipse\jboss\server\default\deploy\jbossweb.sar目录

jboss-4.2.2.GA.zip版本目录为jboss\server\default\deploy\jboss-web.deployer下面找到

server.xml文件

它下面有个节点

connectionTimeout="20000"redirectPort="8443"/>,将端口改为例如:

8888

4、重新启动jboss服务器,启动服务点击JBoss安装目录bin下面的run.bat:

例如此处为:

D:

\Myeclipse\jboss\bin\run.bat

正常启动JBoss服务器出现下面的页面:

二、安装部署Weblogic服务器:

1、同样去官网下载weblogic10.0以上版本。

因为10以上版本才支持EJB3.0.

此处为11g的wls1031_win32.exe。

选择create:

把下面的勾去掉:

三、Jboss+EJB3.0入门示例:

1、打开Myeclipse8.5新建EJB项目,版本选择3.0

如图的EJBTest项目:

目录结构如图

二、编写相应代码:

在JBoss中:

第一种:

接口和实现类中分别配置@Remote和@Stateless

编写远程接口类:

@Remote表示这是一个远程接口(注:

@Local表示为本地接口)

packagecom.tudou.ejb.session;

importjavax.ejb.Remote;

@Remote

publicinterfaceSayHello{

publicStringsayHello(Stringname);//没有方法体

}

SayHello.java。

实现类的命名规则是:

接口+Bean,如:

SayHelloBean

@Stateless表示的是无状态会话bean(注:

@Stateful表示的是有状态会话bean)

如下:

packagecom.tudou.ejb.session;

importjavax.ejb.Stateless;

@Stateless

publicclassSayHelloBeanimplementsSayHello{

publicStringsayHello(Stringname){

return"你好,"+name;

}

}

 

第二种:

接口中不配置,只在实现类中配置@Remote和@Stateless

packagecom.tudou.ejb.session;

importjavax.ejb.Remote;

importjavax.ejb.Stateless;

packagecom.tudou.ejb.session;

publicinterfaceSayHello{

publicStringsayHello(Stringname);//没有方法体

}

@Stateless

@Remote({SayHello.class})//此处可以只写@Remote

publicclassSayHelloBeanimplementsSayHello{

publicStringsayHello(Stringname){

return"你好,"+name;

}

}

三、打包项目文件:

1.MyElispse打包向导(土豆推荐方式)

在Elispse开发环境下,可以通过向导进行打包。

右击项目名称,在跳出的菜单中

选择“导出”,在“导出”对话框选择“Jar文件”,在“选择要导出的资源”时,选择源

目录和用到的资源。

然后选择一个存放目录及文件名。

点“完成”就结束了打包。

图中存放于桌面上。

名为sayHello.jar

2.Ant打包任务

采用Ant进行打包是比较方便的,这是网上别人推荐的打包方式。

下面我们看一个简单

的打包任务。

当然,这人本人没有做过测试。

不过用于学习,特放于此处。

可以参考学习

xmlversion="1.0"?

>

上面建立了一个名为jartest的Ant项目,默认的任务为default="jar",项目的路

径为build.xml文件所在目录

basedir="."。

应用编绎过后的class文件已经存在于应用的/build/classes/目录

下。

Ant定义了一个属性

“build.classes.dir”,他指向应用的/build/classes/目录。

定义了一个名叫jar的任

务,description是描述信息。

任务中使用jar

命令把/build/classes/目录下的所有class文件打包进jar文件,同时也把应用下

的META-INF目录下的所有文件打

包进jar文件的META-INF目录。

打包后的jar文件存放在应用目录下。

文件名

为:

ejbfile.jar

4.3.4如何进行WEB应用打包

一个Web应用发布到Jboss服务器时需要打成war包。

本节将介绍jar命令行及Ant任

务两种war文件的打包方

式。

1.在命令行下用jar命令进行war文件打包(土豆标注:

使用jar命令也可以打包成jar文件)

在打包前把文件存成以下结构:

WEB应用根目录

|--**/*.jsp

|--WEB-INF

|--web.xml

|--lib

|--*.*

|--classes

|--**/*.class

在Dos窗口中进入到WEB应用根目录下,执行如下命令

jarcvfEJBTest.war*

此命令把WEB应用根目录下的所有文件及文件夹打包成EJBTest.war文件

例如WEB应用根目录在:

D:

\java\webapp\,命令输入如下:

D:

\java\webapp>jarcvfEJBTest.war*

2.在Ant任务中进行war文件打包

如果文件存放的结构如下面所示:

WEB应用根目录

|--build.xml

|--**/*.jsp

|--WEB-INF

|--web.xml

|--lib

|--*.*

|--classes

|--**/*.class

那么Ant的war文件打包任务如下:

xmlversion="1.0"?

>

定义一个名叫war的任务。

任务中执行war打包操作,把应用下除了build.xml,/WEB-INF/web.xml之外的所有

文件夹及文件打进war包,同时把webxml="/WEB-INF/web.xml"作为web应用的

web.xml文件。

四:

创建java项目

【1】使用JBoss+EJB3.0

启动JBoss服务器,先配置如图

一旦发布成功,你就可以在jboss的管理平台查看她们的JNDI名,输入下面URL

http:

//localhost:

8080/jmx-console/点击service=JNDIView,查看EJB的JNDI名称。

在出现的页面中,找到“ListofMBeanoperations:

”栏。

点击”Invoke”按钮

找JNDIName界面

可以看见HelloWorld会话Bean的JNDI名,JNDI名的组成规则是“上层名称/

下层名称“,每层之间以”/”分隔。

HelloWorld会话Bean的JNDI名

是:

HelloWorldBean/remote。

HelloWorld会话Bean发布成功后,接下来介绍客户端如何访问她。

1、导包

为此工程添加ejb3.0jar包这些类包都可以在jboss安装目录的

client,/server/all/deploy/jboss-aop-jdk50.deployer,/server/all/deploy/ejb3.deployer,/lib/endorsed等文件夹下找到,

2、编写测试类Test:

packagecom.tudou.ejbtest;

importjava.util.Properties;

importjavax.naming.InitialContext;

importjavax.naming.NamingException;

importcom.tudou.ejb.session.SayHello;

publicclassTest{

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

Propertiesp=newProperties();

p.put("java.naming.factory.initial",

"org.jnp.interfaces.NamingContextFactory");

p.put("java.naming.provider.url","localhost");

try{

InitialContextctx=newInitialContext(p);

SayHellos=(SayHello)ctx.lookup("SayHelloBean/remote");

Stringsay=s.sayHello("tudou");

System.out.println(say);

}catch(NamingExceptione){

e.printStackTrace();

}

//上面赋值还可以写成

//p.setProperty("java.naming.factory.initial",

//"org.jnp.interfaces.NamingContextFactory");

//p.setProperty("java.naming.factory.url.pkgs",

//"org.jboss.naming:

org.jnp.interfaces");

//p.setProperty("java.naming.provider.url","localhost");

}

}

如果你没有在代码中配置而是在src文件夹下配置jndi.properties上面的main可以省略:

publicstaticvoidmain(String[]args){

try{

InitialContextctx=newInitialContext();

SayHellos=(SayHello)ctx.lookup("SayHelloBean/remote");

Stringsay=s.sayHello("tudou");

System.out.println(say);

}catch(NamingExceptione){

e.printStackTrace();

}

}

}

然后你必须在你项目的src目录下新建jndi.properties文件

如果你不知道里面的配置怎么写,你可以到JBoss安装目录下搜索jndi,可以找到在jboss\docs\examples\jca文件夹下有一个hajndi-jms-ds.xml的文件,在节点

java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory

java.naming.factory.url.pkgs=org.jboss.naming:

org.jnp.interfaces

java.naming.provider.url=${jboss.bind.address:

localhost}:

1100

…...

你就可以找到它们相应的键和值了。

注:

配置文件每行必须最前写,等号两边不能有空格。

【2】使用Weblogic+EJB3.0

只需修改JBoss几处代码即可:

第一,配置Weblogic,这个可能稍微有点复杂,因为和JBoss相比。

1、首先BEAHome为Weblogic的安装根目录,此处为:

2、配置用户名及密码。

即安装时的用户和密码。

密码为8位纯数字。

3、配置域,如:

base_domain或tudou_domain。

这个域就是安装时所写的那个。

密码纯8位数字密码。

修改EJB项目源码。

并用Weblogic发布。

一样导出为jar包。

一样需要导入EJBQWeblogicTest项目中。

(注:

此为土豆原创,沤心沥血测试得出!

测试通过!

请注意红色部分为修改部分)

packagecom.tudou.ejb.session;

importjavax.ejb.Remote;

@Remote(value=SayHello.class)//此处可以只写@Romote

publicinterfaceSayHello{

publicStringsayHello(Stringname);//没有方法体

}

packagecom.tudou.ejb.session;

importjavax.ejb.Stateless;

@Stateless(mappedName="SayHelloBean")//此处必须配置mappedName指定jndi

publicclassSayHelloBeanimplementsSayHello{

publicStringsayHello(Stringname){

return"你好,"+name;

}

}

packagecom.tudou.ejbtest;

importjava.util.Properties;

importjavax.naming.Context;

importjavax.naming.InitialContext;

importjavax.naming.NamingException;

importcom.tudou.ejb.session.SayHello;

publicclassTest{

/**

*@tudou

*/

publicstaticvoidmain(String[]args){

Propertiesp=newProperties();

//p.setProperty("java.naming.factory.initial",

//"weblogic.jndi.WLInitialContextFactory");

//p.setProperty("java.naming.provider.url","t3:

//localhost:

7001");

//此处配置的参数键值和JBoss不同。

p.put(Context.INITIAL_CONTEXT_FACTORY,

"weblogic.jndi.WLInitialContextFactory");

//t3好像是一种协议,它类似于http,snmp等(启动weblogic服务器时可以在控制台看到)。

但此处必须用t3,否则报错!

p.put(Context.PROVIDER_URL,"t3:

//localhost:

7001");

try{

InitialContextctx=newInitialContext(p);

SayHellos=(SayHello)ctx

.lookup("SayHelloBean#com.tudou.ejb.session.SayHello");

//注此处不像JBoss那样后面写的是/Remote或/Local。

Stringsay=s.sayHello("tudou");

System.out.println(say);

}catch(NamingExceptione){

e.printStackTrace();

}

}

}

下面援引自网络(红色部分为需要注意部分):

在这里作者要重点说明一下EJBJNDI名称默认的命名规则,命名规则如下:

1>如果EJB打包进后缀为*.ear的J2EE发布文件,默认的JNDI名称是

访问本地接口:

EAR-FILE-BASE-NAME/EJB-CLASS-NAME/local

访问远程接口:

EAR-FILE-BASE-NAME/EJB-CLASS-NAME/remote

例:

EJBHelloWorld打包进名为HelloWorld.ear的J2EE应用,访问她远程接口的

JNDI名是:

HelloWorld/HelloWorldBean/remote

2>如果EJB应用打包成后缀为*.jar的发布文件,默认的JNDI名称是

访问本地接口:

EJB-CLASS-NAME/local

访问远程接口:

EJB-CLASS-NAME/remote

例:

HelloWorld应用打包成HelloWorld.jar文件,访问她远程接口的JNDI名称

是:

HelloWorldBean/remote

另外有一点要注意:

EJB-CLASS-NAME是不带包名的,如

com.foshanshop.ejb3.impl.HelloWorldBean只需取

HelloWorldBean。

4.5EJB3.0远程调用

在正式的生产环境下,大部分调用EJB的客户端所在的服务器都为独立的Tomcat或

Resin。

下面介绍如何在

独立的Tomcat服务器中调用Jboss中的EJB。

在独立的Tomcat服务器中调用EJB需要

有以下步骤:

1>根据应用的需要,把调用EJB所依赖的Jar包拷贝到tomcat下的/shared/lib目录

或WEB应用的

WEB-INF/lib下,所依赖的Jar一般在jboss安装目录的client,/server/all/deploy

/jboss-aop-jdk50.deployer,

/server/all/deploy/ejb3.deployer,/lib/endorsed等文件夹下。

下面的jar文件是必需的:

[jboss安装目录]\client\jbossall-client.jar

[jboss安装目录]\client\jboss-remoting.jar

[jboss安装目录]\client\jboss-aop-jdk50-client.jar

[jboss安装目录]\client\jboss-aspect-jdk50-client.jar

[jboss安装目录]\client\jboss-ejb3-client.jar

[jboss安装目录]\client\jboss-ejb3x.jar

[jboss安装目录]\client\jboss-annotations-ejb3.jar

2>把调用的EJB接口拷贝到应用的/WEB-INF/classes/目录下,如果有包名,需要

把包和类一起拷过来。

注意,在部署web应用的服务器上,如果安装的是Tomcat服务器,它的安装路径不

能出现空格,如:

D:

\Tomcat5.0不能象D:

\Tomcat5.0这样带空格的安装目录,否

则会出现下面的异常:

java.rmi.UnmarshalException:

errorunmarshalling

arguments;nestedexceptionis:

.MalformedURLException:

noprotocol:

5.0/webapps/ROOT/WEB-INF

/classes/]。

现在把上述的HelloWorldEJB程序实现远程调用:

打包好的EJB组件

部署在一台机器的Jobss服务器上,把服务器启动起来,在部署web应用的机器上按

照上述的两个步骤把相关jar文件和用到的接口类拷到相应的目录下,把Test.jsp:

文件中的

props.setProperty("java.naming.provider.url","localhost:

1099");这行的

localhost改为EJB组件部署机器的IP,把web应用的工程部署到Tomcat下,启动

Tomcat,就可以看到运行的结果了。

很拽の土豆欢迎交流

2011-4-23制作

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

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2