|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
分以下几个步骤: 1 建立测试web模块 2 建立idea ejb模块,编写ejb 3 编译,打包 4 写测试页面 5 发布ejb,web测试模块,测试ejb 1 建立web测试模块。 在默认的user_projects/domains/mydomain/applications目录下,新建一个名为web的文件夹。这个文件夹就是我们测试ejb的web模块。 在web文件夹下新建WEB-INF文件夹,在WEB-INF下新建lib文件夹。 在WEB-INF下新建web.xml文件,内容如下: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> </web-app> ok。web测试模块完成。 2 建立idea ejb模块,编写ejb 打开idea,选择 file-new-ejb modules,把module name 改为“EjbSamples”,如下图: 在服务器选项,选择weblogic,其余都按默认设置。最后点finish。 在src文件夹下新建包。包名如下:com.diegoyun.ejb.slb,如下图: 把鼠标放到模块名上,右键,选择:new-sessionBean。然后在弹出的属性框设置如下: <ejb-name> :输入Helloworld Package:选择/输入com.diegoyun.ejb.slb 其余信息idea会帮你自动设置,整个属性框属性如下: 点击ok结束 这时会弹出ejb的属性配置界面,如下: 在Display name,输入 HelloworldEJB 然后切换到weblogic server页,输入jndi name如下:ejb/session/HelloworldEJB 界面如下: 关闭这个属性页。Idea已经帮你写好了ejb的配置信息。可以打开META-INF/下的ejb-jar.xml和weblogic-ejb-jar.xml进行查看。 这时在com.diegoyun.ejb.slb下,应该有三个文件:Helloworld,HelloworldBean和HelloworldHome 在Helloworld接口中添加一个方式如下: public interface Helloworld extends EJBObject { public String getGreeting(String name)throws RemoteException; } 在HelloworldBean接口中添加一个方式如下: public class HelloworldBean implements SessionBean { …………… //omit others public String getGreeting(String name){ return "Hello," + name; } } ok.你的Helloword ejb已经写好了。 3 编译,打包,发布ejb 本例采用web方法访问ejb。并且没有把web模块和ejb jar都打包成ear。所以必须先把ejb源码编译成jar,发布这个jar,然后复制到测试web模块的lib目录下,这样web页面才能访问到bean。 本例采用ant脚本来执行编译和打包等命令。在idea的ejbSamples模块下新建一个build.xml脚本,内容如下: <project name="ejb-example" default = "all" basedir="."> <!-- Set your personal configuration information below: --> <property name="j2eelib" value="D:/Devs/bea/weblogic81 erver/lib/weblogic.jar"/> <property name="uploadPath" value="D:/Devs/bea/user_projects/domains/mydomain/myserver/upload"/> <property name="webPath" value="D:/Devs/bea/user_projects/domains/mydomain/applications/web/WEB-INF/lib"/> <!-- End personal conf info --> <property name="source" value="src"/> <property name="meta" value="META-INF"/> <property name="build" value="${basedir}/build"/> <property name="packinfo" value="${build}/META-INF"/> <property name="dist" value="${basedir}/dist"/> <target name="init"> <!-- Create the time stamp --> <tstamp/> <mkdir dir="${build}"/> <mkdir dir="${dist}"/> <mkdir dir="${packinfo}"/> </target> <target name="ejb"> <javac srcdir="${source}" classpath="${j2eelib}" destdir="${build}" includes="**/*.java"/> </target> <target name="copy" depends="ejb"> <copydir src="${meta}" dest="${packinfo}" includes="**/*.xml"/> </target> <target name="ejb-jar" depends="ejb"> <jar jarfile="${dist}/EjbSamples.jar" includes="**/*.xml, **/*.class" basedir="${build}"/> </target> <!-- copy jar to weblogic upload ant web diretory --> <target name="copy-to-path" depends="ejb-jar"> <copyfile src="${dist}/EjbSamples.jar" dest="${uploadPath}/EjbSamples.jar" forceoverwrite="true"/> <copyfile src="${dist}/EjbSamples.jar" dest="${webPath}/EjbSamples.jar" forceoverwrite="true"/> </target> <target name="all" depends="init,ejb,copy,ejb-jar,copy-to-path"/> </project> 针对你本机weblogic的安装,修改脚本以下信息即可: <!-- Set your personal configuration information below: --> <property name="j2eelib" value="D:/Devs/bea/weblogic81 erver/lib/weblogic.jar"/> <property name="uploadPath" value="D:/Devs/bea/user_projects/domains/mydomain/myserver/upload"/> <property name="webPath" value="D:/Devs/bea/user_projects/domains/mydomain/applications/web/WEB-INF/lib"/> <!-- End personal conf info --> <property name="j2eelib"> :由于本例采用weblogic.jar进行javac编译,所以必须知道该jar的位置。通常,它位于<bea diretory>/weblogic81 erver/lib/下。例如,假如你的weblogic安装在C盘,那么你的jar应该如此设置: <property name="j2eelib" value="C: /bea/weblogic81 erver/lib/weblogic.jar"/> <property name=" uploadPath "> :weblogic放置上传文件的目录。通常位于<bea diretory>/user_projects/domains/<your domain>/<your server>/upload文件夹下。假如你采用的是weblogic默认安装,那么<your domain>通常是mydomain(由weblogic默认创建),<your server>通常是myserver。例如,假如你的weblogic安装在C盘,并且domain和server都采用默认,那么属性设置如下: <property name="uploadPath" value="C:/bea/user_projects/domains/mydomain/myserver/upload"/> <property name="webPath">:web测试模块的lib目录。按照你自己本机配置进行设置。 至此,ejb的编写,配置工作全部完成。运行刚才的脚本。 Ant build.xml 然后查看 web测试模块/WEB-INF/lib 下是否有ejb jar,weblogic的upload目录下是否有ejb jar,假如没有,请按所列步骤仔细检查你的配置情况。 4 写测试页面进行测试 在web模块下新建hello.jsp,内容如下: <%@ page language="java" %> <%@ page import="com.diegoyun.ejb.slb.Helloworld, com.diegoyun.ejb.slb.HelloworldHome, javax.ejb.*, java.math.*, javax.naming.*, javax.rmi.PortableRemoteObject, java.rmi.RemoteException" %> <html> <head> <title>hello</title> </head> <body bgcolor="white"> <h1><b><center>Stateless Bean Examples</center></b></h1> <hr> <form name="frm" method="post" action="hello.jsp"> <input type="text" value="Diego" name="myname"/> <input type="submit" value="Submit"/> </form> <p> <p>See :</p> <br> <% Helloworld hello = null; String name = null; name = request.getParameter("myname"); if(name!=null && !"".equals(name)){ try { InitialContext ic = new InitialContext(); Object objRef = ic.lookup("ejb/session/HelloworldEJB"); HelloworldHome home = (HelloworldHome)PortableRemoteObject.narrow(objRef, HelloworldHome.class); hello = home.create(); } catch (RemoteException ex) { System.out.println("Couldn\\\'t create hello bean."+ ex.getMessage()); } catch (CreateException ex) { System.out.println("Couldn\\\'t create hello bean."+ ex.getMessage()); } catch (NamingException ex) { System.out.println("Unable to lookup home: "+ "HelloworldHome "+ ex.getMessage()); } } if(hello!=null && !"".equals(hello)) { String s = hello.getGreeting(name); out.print(s); } %> </body> </html> 5 发布ejb,web测试模块,调试ejb 发布ejb。启动weblogic server,打开控制台。 然后在ejb发布页面,选择upload文件夹下的jar进行发布,默认路径应是:<bea diretory>/user_projects/domains/mydomain/myserver/upload 发布web模块 在deploy web application modules下,定位到<bea diretory>/user_projects/domains/mydomain/applications下,可以看到我们建立的web模块。点“Target Module”进行发布,name取名为“web” ok。所有工作均已完成! 打开浏览器,输入:http://localhost:7001/web/hello.jsp 点submit,就可以看到hello字样。 FAQ: 1 为什么在打包ejb之后,把ejb copy到weblogic的upload目录下?(这个过程是由build.xml脚本完成的) 答:一般情况下假如你修改了ejb,那么你就要在weblogic控制台重新deploy ejb的jar。常常进行这项工作是很烦人的。幸好weblogic提供了upload的特性,你把jar 上传到weblogic,然后deploy upload文件夹里的这个jar。以后每次在你修改ejb,打包成jar之后,你用新的jar覆盖upload目录下的jar,就不用重新deploy jar了。通过这种方法模仿了jboss的热部署特性。 其他模块,例如war,ear,都可以通过这种方法来deploy。 返回类别: 教程 上一教程: Java对等计算实践:基于 IP 多播的发现 下一教程: 评估Java在商务集成方面的特性 您可以阅读与"开发SessionBean"相关的教程: · Java开发源缓存系统的介绍 · JAVA程序开发小经验 - 使用ObjectStream会出现的问题 · 在eclipse上用myeclipse开发部署struts · 简明 HTML CSS 开发规范 · 初探Eclipse结合Lomboz开发EJB-Eclipse环境搭建 |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |