路漫漫其修远兮吾将上下而求索EJB3.0+Jboss/Weblogic安装部署及入门示例一、安装部署Jboss服务器:1、去官网下载jboss-4.2.2.GA.zip或jboss-5.1.0.GA.zip版本直接解压安装,放至相应目录。例如D:\Myeclipse\jboss2、安装完后请在“系统变量”里添加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文件它下面有个节点Connectorprotocol=HTTP/1.1port=8888address=${jboss.bind.address}connectionTimeout=20000redirectPort=8443/,将端口改为例如:88884、重新启动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;@RemotepublicinterfaceSayHello{publicStringsayHello(Stringname);//没有方法体}SayHello.java。实现类的命名规则是:接口+Bean,如:SayHelloBean@Stateless表示的是无状态会话bean(注:@Stateful表示的是有状态会话bean)如下:packagecom.tudou.ejb.session;importjavax.ejb.Stateless;@StatelesspublicclassSayHelloBeanimplementsSayHello{publicStringsayHello(Stringname){return你好,+name;}}路漫漫其修远兮吾将上下而求索第二种:接口中不配置,只在实现类中配置@Remote和@Statelesspackagecom.tudou.ejb.session;importjavax.ejb.Remote;importjavax.ejb.Stateless;packagecom.tudou.ejb.session;publicinterfaceSayHello{publicStringsayHello(Stringname);//没有方法体}@Stateless@Remote({SayHello.class})//此处可以只写@RemotepublicclassSayHelloBeanimplementsSayHello{publicStringsayHello(Stringname){return你好,+name;}}三、打包项目文件:1.MyElispse打包向导(土豆推荐方式)在Elispse开发环境下,可以通过向导进行打包。右击项目名称,在跳出的菜单中选择“导出”,在“导出”对话框选择“Jar文件”,在“选择要导出的资源”时,选择源目录和用到的资源。然后选择一个存放目录及文件名。点“完成”就结束了打包。路漫漫其修远兮吾将上下而求索图中存放于桌面上。名为sayHello.jar2.Ant打包任务路漫漫其修远兮吾将上下而求索采用Ant进行打包是比较方便的,这是网上别人推荐的打包方式。下面我们看一个简单的打包任务。当然,这人本人没有做过测试。不过用于学习,特放于此处。可以参考学习?xmlversion=1.0?projectname=jartestdefault=jarbasedir=.propertyname=build.dirvalue=/build/propertyname=build.classes.dirvalue=/classes/targetname=jardescription=打包成Jarjarjarfile=/ejbfile.jarfilesetdir=includename=**/*./jar/target/project上面建立了一个名为jartest的Ant项目,默认的任务为default=jar,项目的路径为build.xml文件所在目录basedir=.。应用编绎过后的class文件已经存在于应用的/build/classes/目录下。Ant定义了一个属性“build.classes.dir”,他指向应用的/build/classes/目录。targetname=jardescription=打包成Jar定义了一个名叫jar的任务,description是描述信息。任务中使用jar命令把/build/classes/目录下的所有class文件打包进jar文件,同时也把应用下的META-INF目录下的所有文件打包进jar文件的META-INF目录。打包后的jar文件存放在应用目录下。文件名为:ejbfile.jar4.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\webappjarcvfEJBTest.war*2.在Ant任务中进行war文件打包如果文件存放的结构如下面所示:WEB应用根目录|--build.xml|--**/*.jsp|--WEB-INF|--web.xml|--lib|--*.*|--classes|--**/*.class那么Ant的war文件打包任务如下:路漫漫其修远兮吾将上下而求索?xmlversion=1.0?projectname=wartestdefault=warbasedir=.targetname=wardescription=创建WEB发布包warwarfile=/EJBTest.warwebxml=/WEB-INF/web.xmlfilesetdir=includename=**/excludename=build.xml/excludename=/WEB-INF/web.xml//fileset/war/target/projecttargetname=wardescription=创建WEB发布包定义一个名叫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点击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.