JAVA编程:手动部署EJB 亲身体验EJB开辟流程
你说是sun公司对她研究的透还是微软?针对自己工具开发的.net性能上肯定会站上风的。 JBoss4.0主动集成了Tomcat5.0,因此它不单单是专业的EJB容器,同时同样成了专业的JSP/servlet容器和Web服务器。Tomcat5.0被集成在jboss的上面这个目次中:
JBOSS_HOMEserverdefaultdeployjbossweb-tomcat50.sar
内里供应了一个server.xml和web.xml文件,能够对Tomcat举行一些基础设置。但JBOSS的计划者倡议用户乃至不要打仗这个目次,更不必说修正和增加甚么文件了,由于Tomcat与Jboss是云云严密相连,乃至于一切的设置事情都能够在Jboss本人的设置文件中完成。可是我仍是发明了一个中央值得修正:修正server.xml中的端标语,好比由缺省的8080端口改成4000端口,由于我发明我的“百度下吧”软件经常占用了8080端口,并且我原本已有了一个Tomcat5.0。
如许键进:
http://localhost:4000/
能够会见到Jboss的接待页面
本文演示了JSP页面怎样在jboss4.0中挪用EJB组件。
总布局:
J2EE使用/
|__EJB组件/(haiejb.jar)
||__META-INF/
|||__ejb-jar.xml
|||__jboss.xml
||__ejbs/
||__HaiHome.class
||__HaiClient.class
||__HaiBean.class
|__WEB使用/(haiejb.war)
||__haiejb.jsp
||__WEB-INF/
||__web.xml
||__jboss-web.xml
|__META-INF/
|__application.xml
1、编译java文件为EJB类文件
java文件编译:
[假定在体系情况变量的CLASSPATH中包括了javax.ejb.*包,该包能够在以下中央找:
JBOSS_HOMEserverdefaultlibjboss-j2ee.jar
JBOSS_HOMEclientjboss-j2ee.jar]
>:javac-classpath%classpath%-d[输入目次:EJB组件目次]*.java
HaiHome.java:
packageejbs;
importjava.io.Serializable;
importjava.rmi.*;
importjavax.ejb.*;
publicinterfaceHaiHomeextendsEJBHome{
HaiClientcreate()throwsRemoteException,CreateException;
}
HaiClient.java:
packageejbs;
importjavax.ejb.*;
importjava.rmi.RemoteException;
publicinterfaceHaiClientextendsEJBObject{
publicStringsayHai()throwsRemoteException;
}
haiBean.java:
packageejbs;
importjavax.ejb.*;
importjavax.naming.*;
publicclassHaiBeanimplementsSessionBean{
publicStringsayHai(){
return"Hai,EJBtechnology!";
}
publicvoidejbCreate()throwsEJBException{}
publicvoidejbRemove()throwsEJBException{}
publicvoidejbPassivate(){}
publicvoidejbActivate(){}
publicvoidsetSessionContext(SessionContextsc){}
}
2、创立EJB组件:
haiejb.jar:(EJB组件)
打包命令:>:jarcvfhaiejb.jarMETA-INF/ejbs/
|__META-INF/
||__ejb-jar.xml
||__jboss.xml
|__ejbs/
|__HaiHome.class
|__HaiClient.class
|__HaiBean.class
ejb-jar.xml:
<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEejb-jarPUBLIC’-//SunMicrosystems,Inc.//DTDEnterpriseJavaBeans2.0//EN’’http://java.sun.com/dtd/ejb-jar_2_0.dtd’>
<ejb-jar>
<description>HaiEJBinstance.</description>
<display-name>HaiEJB</display-name>
<enterprise-beans>
<session>
<ejb-name>HaiEJB</ejb-name>
<home>ejbs.HaiHome</home>
<remote>ejbs.HaiClient</remote>
<ejb-class>ejbs.HaiBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Bean</transaction-type>
</session>
</enterprise-beans>
</ejb-jar>
jboss.xml:
<?xmlversion="1.0"encoding="UTF-8"?>
<jboss>
<enterprise-beans>
<session>
<ejb-name>HaiEJB</ejb-name>
<jndi-name>HaiEJB</jndi-name>
</session>
</enterprise-beans>
</jboss>
3、创立WEB使用
haiejb.war:(WEB使用)
打包命令:>:jarcvfhaiejb.warhaiejb.jspWEB-INF/
|__haiejb.jsp
|__WEB-INF/
|__web.xml
|__jboss-web.xml
haiejb.jsp:
<%@pagecontentType="text/html;charset=GBK"%>
<%@pageimport="ejbs.*,javax.ejb.*,javax.naming.*,javax.rmi.PortableRemoteObject,java.rmi.RemoteException"%>
<html>
<body>
<%Stringmessage="nothing!";
try{
InitialContextic=newInitialContext();
ObjectobjRef=ic.lookup("HaiEJB");
HaiHomehome=(HaiHome)PortableRemoteObject.narrow(objRef,ejbs.HaiHome.class);
HaiClienthaiRemote=home.create();
message=haiRemote.sayHai();
}catch(RemoteExceptionre){
re.printStackTrace();
}catch(CreateExceptionce){
ce.printStackTrace();
}catch(NamingExceptionne){
ne.printStackTrace();
}
%>
<h1><%=message%></h1>
</body>
</html>
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>
<ejb-ref>
<ejb-ref-name>HaiEJB</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<home>ejbs.HaiHome</home>
<remote>ejbs.HaiClient</remote>
</ejb-ref>
</web-app>
jboss-web.xml:
<?xmlversion="1.0"encoding="UTF-8"?>
<jboss-web>
<ejb-ref>
<ejb-ref-name>HaiEJB</ejb-ref-name>
<jndi-name>HaiEJB</jndi-name>
</ejb-ref>
</jboss-web>
4、创立J2EE使用程序
haiejb.ear:(J2EE使用程序)
把下面创立的haiejb.jar和haiejb.war包拷贝到你创立的J2EE使用主目次,新建一个META-INF目次并在内里创立application.xml文件:
打包命令:>:jarcvfhaiejb.earhaiejb.jarhaiejb.warMETA-INF/
|__haiejb.jar
|__haiejb.war
|__META-INF/
|__application.xml
application.xml:
<?xmlversion="1.0"encoding="UTF-8"?>
<application>
<display-name>HaiEJBJ2EEApplication</display-name>
<module>
<web>
<web-uri>haiejb.war</web-uri>
<context-root>/haiejb</context-root>
</web>
</module>
<module>
<ejb>haiejb.jar</ejb>
</module>
</application>
5、部署J2EE使用:
把haiejb.ear拷贝到JBOSS_HOMEserverdefaultdeploy
启动jboss4.0,注重命令行窗口中有没有非常,假如有非常情形,请检察log文件:
JBOSS_HOMEserverdefaultlogserver.log
从中查找剖析成绩地点,然后更正之,直到无非常显现
最初在扫瞄器地点栏中键进:
http://localhost:8080/haiejb/haiejb.jsp
了局:
Hai,EJBtechnology!
祝好运!
最后就是我对java的几点希望:首先是IDE工具,有人说java已经很好了,有jbuilder,eclipse,netBeans等等,但是我认为如果java想超越.net,那么他首先要解决的就是IDE工具的整合。 J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。 接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。 是一种将安全性(Security)列为第一优先考虑的语言 科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。 是一种为 Internet发展的计算机语言 是一种将安全性(Security)列为第一优先考虑的语言 Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站 是一种使网页(Web Page)产生生动活泼画面的语言 是一种使用者不需花费很多时间学习的语言 科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。 如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。 我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
页:
[1]