程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> Jboss4.x下第一個EJB2.x程序

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

編輯:JAVA編程入門知識
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”,就是成功了。
 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved