ejb30+Weblogic+Jboss安装配置及入门例子Word文档格式.docx
- 文档编号:19422105
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:22
- 大小:3.86MB
ejb30+Weblogic+Jboss安装配置及入门例子Word文档格式.docx
《ejb30+Weblogic+Jboss安装配置及入门例子Word文档格式.docx》由会员分享,可在线阅读,更多相关《ejb30+Weblogic+Jboss安装配置及入门例子Word文档格式.docx(22页珍藏版)》请在冰豆网上搜索。
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)
如下:
importjavax.ejb.Stateless;
@Stateless
publicclassSayHelloBeanimplementsSayHello{
publicStringsayHello(Stringname){
return"
你好,"
+name;
}
第二种:
接口中不配置,只在实现类中配置@Remote和@Stateless
@Remote({SayHello.class})//此处可以只写@Remote
三、打包项目文件:
1.MyElispse打包向导(本人推荐方式)
在Elispse开发环境下,可以通过向导进行打包。
右击项目名称,在跳出的菜单中
选择“导出”,在“导出”对话框选择“Jar文件”,在“选择要导出的资源”时,选择源
目录和用到的资源。
然后选择一个存放目录及文件名。
点“完成”就结束了打包。
图中存放于桌面上。
名为sayHello.jar
4.3.4如何进行WEB应用打包
一个Web应用发布到Jboss服务器时需要打成war包。
四:
创建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"
);
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.url.pkgs"
org.jboss.naming:
org.jnp.interfaces"
}
如果你没有在代码中配置而是在src文件夹下配置jndi.properties上面的main可以省略:
publicstaticvoidmain(String[]args){
InitialContextctx=newInitialContext();
然后你必须在你项目的src目录下新建jndi.properties文件
如果你不知道里面的配置怎么写,你可以到JBoss安装目录下搜索jndi,可以找到在jboss\docs\examples\jca文件夹下有一个hajndi-jms-ds.xml的文件,在节点<
attributename="
Properties"
>
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
…...
<
/attribute>
你就可以找到它们相应的键和值了。
注:
配置文件每行必须最前写,等号两边不能有空格。
【2】使用Weblogic+EJB3.0
只需修改JBoss几处代码即可:
第一,配置Weblogic,这个可能稍微有点复杂,因为和JBoss相比。
1、首先BEAHome为Weblogic的安装根目录,此处为:
2、配置用户名及密码。
即安装时的用户和密码。
密码为8位纯数字。
3、配置域,如:
base_domain或tudou_domain。
这个域就是安装时所写的那个。
密码纯8位数字密码。
修改EJB项目源码。
并用Weblogic发布。
一样导出为jar包。
一样需要导入EJBQWeblogicTest项目中。
(注:
请注意红色部分为修改部分)
@Remote(value=SayHello.class)//此处可以只写@Romote
@Stateless(mappedName="
SayHelloBean"
)//此处必须配置mappedName指定jndi
importjavax.naming.Context;
*@tudou
weblogic.jndi.WLInitialContextFactory"
t3:
7001"
//此处配置的参数键值和JBoss不同。
p.put(Context.INITIAL_CONTEXT_FACTORY,
//t3是一种协议,它类似于http,snmp等(启动weblogic服务器时可以在控制台看到)。
但此处必须用t3,否则报错!
p.put(Context.PROVIDER_URL,"
SayHellos=(SayHello)ctx
.lookup("
SayHelloBean#com.tudou.ejb.session.SayHello"
//注此处不像JBoss那样后面写的是/Remote或/Local。
下面援引自网络(红色部分为需要注意部分):
在这里作者要重点说明一下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需要
有以下步骤:
根据应用的需要,把调用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
把调用的EJB接口拷贝到应用的/WEB-INF/classes/目录下,如果有包名,需要
把包和类一起拷过来。
注意,在部署web应用的服务器上,如果安装的是Tomcat服务器,它的安装路径不
能出现空格,如:
\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("
localhost:
1099"
这行的
localhost改为EJB组件部署机器的IP,把web应用的工程部署到Tomcat下,启动
Tomcat,就可以看到运行的结果了。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ejb30 Weblogic Jboss 安装 配置 入门 例子
![提示](https://static.bdocx.com/images/bang_tan.gif)