逍遥一派 发表于 2015-1-18 11:10:57

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工具的整合。

仓酷云 发表于 2015-1-20 16:08:33

J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。

飘飘悠悠 发表于 2015-1-25 09:20:03

接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。

小女巫 发表于 2015-1-26 15:23:13

是一种将安全性(Security)列为第一优先考虑的语言

逍遥一派 发表于 2015-1-27 19:50:53

科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

柔情似水 发表于 2015-2-4 13:17:30

是一种为 Internet发展的计算机语言

谁可相欹 发表于 2015-2-5 19:52:08

是一种将安全性(Security)列为第一优先考虑的语言

莫相离 发表于 2015-2-7 20:53:46

Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站

活着的死人 发表于 2015-2-11 07:23:08

是一种使网页(Web Page)产生生动活泼画面的语言

再现理想 发表于 2015-3-1 23:29:04

是一种使用者不需花费很多时间学习的语言

透明 发表于 2015-3-11 00:53:52

科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

蒙在股里 发表于 2015-3-17 17:10:54

如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。

飘灵儿 发表于 2015-3-24 13:52:12

我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
页: [1]
查看完整版本: JAVA编程:手动部署EJB 亲身体验EJB开辟流程