|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
C#是不行的,比如说美国的航天飞船里就有java开发的程序以上是我的愚见,其实不管那种语言,你学好了,都能找到好的工作,session
分以下几个步骤:
1创建测试web模块
2创建ideaejb模块,编写ejb
3编译,打包
4写测试页面
5公布ejb,web测试模块,测试ejb
1创建web测试模块。
在默许的user_projectsdomainsmydomainapplications目次下,新建一个名为web的文件夹。这个文件夹就是我们测试ejb的web模块。
在web文件夹下新建WEB-INF文件夹,在WEB-INF下新建lib文件夹。
在WEB-INF下新建web.xml文件,内容以下:
<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEweb-appPUBLIC"-//SunMicrosystems,Inc.//DTDWebApplication2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
</web-app>
ok。web测试模块完成。
2创建ideaejb模块,编写ejb
翻开idea,选择file-new-ejbmodules,把modulename改成“EjbSamples”,以下图:
在服务器选项,选择weblogic,其他都按默许设置。最初点finish。
在src文件夹下新建包。包名以下:com.diegoyun.ejb.slb,以下图:
把鼠标放到模块名上,右键,选择:new-sessionBean。然后在弹出的属性框设置以下:
<ejb-name>:输出Helloworld
Package:选择/输出com.diegoyun.ejb.slb
其他信息idea会帮你主动设置,全部属性框属性以下:
点击ok停止
这时候会弹出ejb的属性设置界面,以下:
在Displayname,输出HelloworldEJB
然后切换到weblogicserver页,输出jndiname以下:ejb/session/HelloworldEJB
界面以下:
封闭这个属性页。Idea已帮你写好了ejb的设置信息。能够翻开META-INF/下的ejb-jar.xml和weblogic-ejb-jar.xml举行检察。
这时候在com.diegoyun.ejb.slb下,应当有三个文件:Helloworld,HelloworldBean和HelloworldHome
在Helloworld接口中增加一个办法以下:
publicinterfaceHelloworldextendsEJBObject{
publicStringgetGreeting(Stringname)throwsRemoteException;
}
在HelloworldBean接口中增加一个办法以下:
publicclassHelloworldBeanimplementsSessionBean{
……………
//omitothers
publicStringgetGreeting(Stringname){
return"Hello,"+name;
}
}
ok.你的Hellowordejb已写好了。
3编译,打包,公布ejb
本例接纳web体例会见ejb。而且没有把web模块和ejbjar都打包成ear。以是必需先把ejb源码编译成jar,公布这个jar,然后复制到测试web模块的lib目次下,如许web页面才干会见到bean。
本例接纳ant剧本来实行编译和打包等命令。在idea的ejbSamples模块下新建一个build.xml剧本,内容以下:
<projectname="ejb-example"default="all"basedir=".">
<!--Setyourpersonalconfigurationinformationbelow:-->
<propertyname="j2eelib"value="D:Devseaweblogic81erverlibweblogic.jar"/>
<propertyname="uploadPath"value="D:Devseauser_projectsdomainsmydomainmyserverupload"/>
<propertyname="webPath"value="D:Devseauser_projectsdomainsmydomainapplicationswebWEB-INFlib"/>
<!--Endpersonalconfinfo-->
<propertyname="source"value="src"/>
<propertyname="meta"value="META-INF"/>
<propertyname="build"value="${basedir}/build"/>
<propertyname="packinfo"value="${build}/META-INF"/>
<propertyname="dist"value="${basedir}/dist"/>
<targetname="init">
<!--Createthetimestamp-->
<tstamp/>
<mkdirdir="${build}"/>
<mkdirdir="${dist}"/>
<mkdirdir="${packinfo}"/>
</target>
<targetname="ejb">
<javacsrcdir="${source}"classpath="${j2eelib}"
destdir="${build}"includes="**/*.java"/>
</target>
<targetname="copy"depends="ejb">
<copydirsrc="${meta}"dest="${packinfo}"includes="**/*.xml"/>
</target>
<targetname="ejb-jar"depends="ejb">
<jarjarfile="${dist}/EjbSamples.jar"includes="**/*.xml,
**/*.class"basedir="${build}"/>
</target>
<!--copyjartoweblogicuploadantwebdiretory-->
<targetname="copy-to-path"depends="ejb-jar">
<copyfilesrc="${dist}/EjbSamples.jar"dest="${uploadPath}/EjbSamples.jar"forceoverwrite="true"/>
<copyfilesrc="${dist}/EjbSamples.jar"dest="${webPath}/EjbSamples.jar"forceoverwrite="true"/>
</target>
<targetname="all"depends="init,ejb,copy,ejb-jar,copy-to-path"/>
</project>
针对你本机weblogic的安装,修正剧本以下信息便可:
<!--Setyourpersonalconfigurationinformationbelow:-->
<propertyname="j2eelib"value="D:Devseaweblogic81erverlibweblogic.jar"/>
<propertyname="uploadPath"value="D:Devseauser_projectsdomainsmydomainmyserverupload"/>
<propertyname="webPath"value="D:Devseauser_projectsdomainsmydomainapplicationswebWEB-INFlib"/>
<!--Endpersonalconfinfo-->
<propertyname="j2eelib">:因为本例接纳weblogic.jar举行javac编译,以是必需晓得该jar的地位。一般,它位于<beadiretory>weblogic81erverlib下。比方,假如你的weblogic安装在C盘,那末你的jar应当云云设置:
<propertyname="j2eelib"value="C:eaweblogic81erverlibweblogic.jar"/>
<propertyname="uploadPath">:weblogic安排上传文件的目次。一般位于<beadiretory>user_projectsdomains<yourdomain><yourserver>upload文件夹下。假如你接纳的是weblogic默许安装,那末<yourdomain>一般是mydomain(由weblogic默许创立),<yourserver>一般是myserver。比方,假如你的weblogic安装在C盘,而且domain和server都接纳默许,那末属性设置以下:
<propertyname="uploadPath"value="C:eauser_projectsdomainsmydomainmyserverupload"/>
<propertyname="webPath">:web测试模块的lib目次。依照你本人本机设置举行设置。
至此,ejb的编写,设置事情全体完成。运转方才的剧本。
Antbuild.xml
然后检察web测试模块/WEB-INF/lib下是不是有ejbjar,weblogic的upload目次下是不是有ejbjar,假如没有,请按所列步骤细心反省你的设置情形。
4写测试页面举行测试
在web模块下新建hello.jsp,内容以下:
<%@pagelanguage="java"%>
<%@pageimport="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>
<bodybgcolor="white">
<h1><b><center>StatelessBeanExamples</center></b></h1>
<hr>
<formname="frm"method="post"action="hello.jsp">
<inputtype="text"value="Diego"name="myname"/>
<inputtype="submit"value="Submit"/>
</form>
<p>
<p>See:</p>
<br>
<%
Helloworldhello=null;
Stringname=null;
name=request.getParameter("myname");
if(name!=null&&!"".equals(name)){
try{
InitialContextic=newInitialContext();
ObjectobjRef=ic.lookup("ejb/session/HelloworldEJB");
HelloworldHomehome=(HelloworldHome)PortableRemoteObject.narrow(objRef,HelloworldHome.class);
hello=home.create();
}catch(RemoteExceptionex){
System.out.println("Couldntcreatehellobean."+ex.getMessage());
}catch(CreateExceptionex){
System.out.println("Couldntcreatehellobean."+ex.getMessage());
}catch(NamingExceptionex){
System.out.println("Unabletolookuphome:"+"HelloworldHome"+ex.getMessage());
}
}
if(hello!=null&&!"".equals(hello)){
Strings=hello.getGreeting(name);
out.print(s);
}
%>
</body>
</html>
5公布ejb,web测试模块,调试ejb
公布ejb。启动weblogicserver,翻开把持台。
然后在ejb公布页面,选择upload文件夹下的jar举行公布,默许路径应是:<beadiretory>user_projectsdomainsmydomainmyserverupload
公布web模块
在deploywebapplicationmodules下,定位到<beadiretory>user_projectsdomainsmydomainapplications下,能够看到我们创建的web模块。点“TargetModule”举行公布,name取名为“web”
ok。一切事情均已完成!
翻开扫瞄器,输出:http://localhost:7001/web/hello.jsp
点submit,就能够看到hello字样。
FAQ:
1为何在打包ejb以后,把ejbcopy到weblogic的upload目次下?(这个历程是由build.xml剧本完成的)
答:一样平常情形下假如你修正了ejb,那末你就要在weblogic把持台从头deployejb的jar。常常举行这项事情是很烦人的。幸亏weblogic供应了upload的特征,你把jar上传到weblogic,然后deployupload文件夹里的这个jar。今后每次在你修正ejb,打包成jar以后,你用新的jar掩盖upload目次下的jar,就不必从头deployjar了。经由过程这类体例摹拟了jboss的热部署特征。
其他模块,比方war,ear,都能够经由过程这类体例来deploy。
不得不提一下的是:.net是看到java红,而开发出来的工具。 |
|