WEB开发网
开发学院WEB开发Jsp Jboss4.x下第一个EJB2.x程序 阅读

Jboss4.x下第一个EJB2.x程序

 2008-01-05 20:34:44 来源:WEB开发网   
核心提示:EJB的名声很不好,尤其在SPRing框架出现以后,Jboss4.x下第一个EJB2.x程序,而EJB3似乎脱胎换骨了,而我现在学习的仍然是EJB2,启动Jboss服务器,在浏览器地址栏输入:http://localhost:8080/HelloEJB/ClientServlet然后看到浏览器输出“Hello from
EJB的名声很不好,尤其在SPRing框架出现以后,而EJB3似乎脱胎换骨了。而我现在学习的仍然是EJB2,原因是EJB3的书很难找。暑假时大概把《精通EJB》和《EJB》这两本书看过一下,现在想复习,加深理解,就从第一个HelloWorld开始。   文件结构:   E:. │ build.xml └─src    ├─META-INF    │    application.xml    │    ejb-jar.xml    │    jboss.xml       ├─powerwind    │    ClientServlet.java    │    Hello.java    │    HelloBean.java    │    HelloHome.java       └─WEB-INF        jboss-web.xml        web.xml   ant文件 build.xml <?xml version="1.0"?> <project name="Hello" default="prepare" basedir=".">      <property environment="env" />    <property name="src.dir" value="${basedir}/src" />    <property name="jboss.home" value="${env.JBOSS_HOME}" />    <property name="build.dir" value="${basedir}/build" />    <property name="classes.dir" value="${build.dir}/classes" />    <property name="dist.dir" value="${basedir}/dist" />      <path id="compile.classpath">     <pathelement location="${classes.dir}" />     <fileset dir="${jboss.home}/client">       <include name="jboss-j2ee.jar" />       <include name="javax.servlet.jar" />       <include name="commons-httpclient.jar" />     </fileset>    </path>      <target name="prepare">     <mkdir dir="${classes.dir}" />     <mkdir dir="${dist.dir}" />     <copy todir="${build.dir}">       <fileset dir="${src.dir}">         <include name="WEB-INF/*.xml" />         <include name="META-INF/*.xml" />       </fileset>     </copy>    </target>      <target name="clean">     <delete dir="${build.dir}" />     <delete dir="${dist.dir}" />    </target>      <target name="compile" depends="prepare">     <javac srcdir="${src.dir}" destdir="${classes.dir}">       <classpath refid="compile.classpath" />     </javac>    </target>      <target name="jar" depends="compile">     <jar destfile="${dist.dir}/HelloEJB.jar">       <fileset dir="${build.dir}">         <exclude name="META-INF/application.xml" />         <include name="META-INF/*.xml" />       </fileset>       <fileset dir="${classes.dir}">         <include name="**/*.class" />       </fileset>     </jar>    </target>      <target name="war" depends="jar">     <jar destfile="${dist.dir}/HelloEJB.war">       <fileset dir="${build.dir}">         <include name="WEB-INF/*.xml" />       </fileset>     </jar>    </target>      <target name="ear" depends="war">     <jar destfile="${dist.dir}/HelloEJB.ear">       <fileset dir="${dist.dir}">         <include name="HelloEJB.jar" />         <include name="HelloEJB.war" />       </fileset>       <fileset dir="${build.dir}">         <include name="META-INF/application.xml" />       </fileset>     </jar>    </target>      <target name="deploy" depends="ear">     <copy file="${dist.dir}/HelloEJB.ear" overwrite="true"       todir="${jboss.home}/server/default/deploy" />    </target>   </project>  


更多的请看:http://www.QQread.com/windows/2003/index.Html

  java源文件 Hello.java package powerwind;   import java.rmi.RemoteException; import javax.ejb.EJBObject;   publicinterface Hello extends EJBObject {    public String sayHello() throws RemoteException; }   HelloHome.java package powerwind;   import java.rmi.RemoteException; import javax.ejb.CreateException; import javax.ejb.EJBHome;   publicinterface HelloHome extends EJBHome {    public Hello create() throws RemoteException, CreateException; }   HelloBean.java package powerwind;   import java.rmi.RemoteException; import javax.ejb.EJBException; import javax.ejb.sessionBean; import javax.ejb.SessionContext;   publicclass HelloBean implements SessionBean {      private SessionContext context;      publicvoid ejbCreate() throws EJBException, RemoteException {    }    publicvoid ejbActivate() throws EJBException, RemoteException {    }    publicvoid ejbPassivate() throws EJBException, RemoteException {    }    publicvoid ejbRemove() throws EJBException, RemoteException {    }      publicvoid setSessionContext(SessionContext newContext)       throws EJBException {     context = newContext;    }      public String sayHello() throws EJBException {     return"Hello from ejb";    } }   用于测试的Servlet  ClientServlet.java package powerwind;   import java.io.IOException; import java.io.PrintWriter;   import javax.naming.InitialContext; import javax.rmi.PortableRemoteObject; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;   publicclass ClientServlet extends HttpServlet {      publicvoid doGet(HttpServletRequest request, HttpServletResponse response)       throws ServletException, IOException {       response.setContentType("text/html");     PrintWriter out = response.getWriter();     String message = null;     try {       InitialContext ic = new InitialContext();       Object obj = ic.lookup("HelloEJB");       HelloHome home = (HelloHome) PortableRemoteObject.narrow(obj,           powerwind.HelloHome.class);       Hello hello = home.create();       message = hello.sayHello();     } catch (Exception e) {       e.printStackTrace();     }     out.println(message);     out.flush();     out.close();    }      publicvoid doPost(HttpServletRequest request, HttpServletResponse response)       throws ServletException, IOException {     doGet(request, response);    }   }    


更多的请看:http://www.qqread.com/windows/2003/index.html

  配置文件: ejb-jar.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN' 'http://java.sun.com/dtd/ejb-jar_2_0.dtd'> <ejb-jar>    <description>HelloEJB,my first ejb program</description>    <display-name>HelloEJB</display-name>    <enterprise-beans>     <session>       <ejb-name>HelloEJB</ejb-name>       <home>powerwind.HelloHome</home>       <remote>powerwind.Hello</remote>       <ejb-class>powerwind.HelloBean</ejb-class>        <session-type>Stateless</session-type>       <transaction-type>Container</transaction-type>     </session>    </enterprise-beans> </ejb-jar>   jboss-jar <?xml version="1.0" encoding="UTF-8"?> <jboss>    <enterprise-beans>     <session>       <ejb-name>HelloEJB</ejb-name>       <jndi-name>HelloEJB</jndi-name>     </session>
   </enterprise-beans> </jboss>   application.xml <?xml version="1.0"?> <application>    <display-name>HelloEJB J2EE Application</display-name>    <module>     <web>       <web-uri>HelloEJB.war</web-uri>       <context-root>/HelloEJB</context-root>     </web>    </module>    <module>     <ejb>HelloEJB.jar</ejb>    </module> </application>   jboss-web.xml <?xml version="1.0"?> <jboss-web>    <ejb-ref>     <ejb-ref-name>HelloEJB</ejb-ref-name>     <jndi-name>HelloEJB</jndi-name>    </ejb-ref> </jboss-web>   web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">    <servlet>
    <servlet-name>ClientServlet</servlet-name>     <servlet-class>powerwind.ClientServlet</servlet-class>    </servlet>      <servlet-mapping>     <servlet-name>ClientServlet</servlet-name>     <url-pattern>/ClientServlet</url-pattern>    </servlet-mapping>      <ejb-ref>     <ejb-ref-name>HelloEJB</ejb-ref-name>     <ejb-ref-type>Session</ejb-ref-type>     <home>powerwind.HelloHome</home>     <remote>powerwind.Hello</remote>    </ejb-ref>   </web-app>   输入 ant –deploy 部署,启动Jboss服务器,在浏览器地址栏输入: http://localhost:8080/HelloEJB/ClientServlet 然后看到浏览器输出“Hello from ejb”,就是成功了。

Tags:Jboss 一个 EJB

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接