1. 程式人生 > >Jboss4.x下第一個EJB2.x程式

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

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> 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);     } } 配置檔案: 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</

相關推薦

Jboss4.x一個EJB2.x程式

EJB的名聲很不好,尤其在Spring框架出現以後,而EJB3似乎脫胎換骨了。而我現在學習的仍然是EJB2,原因是EJB3的書很難找。暑假時大概把《精通EJB》和《EJB》這兩本書看過一下,現在想複習,加深理解,就從第一個HelloWorld開始。 檔案結構: E:.

Maven2一個EJB2.1簡單例項

        一開始還是得列出Maven2下EJB2.1的目錄結構,詳細介紹請參照我之前寫的一篇文章 [ Maven2下第一個EJB3.0簡單例項 ],之所以將EJB2.1的例項與EJB3.0的例項寫到一起,是因為確實兩個版本變化較大,也是因為很多人確實遇到要從EJB2.1

Vert.x (二): 我的一個Vert.x 3 應用

歡迎關注http://quanke.name/ 交流群:231419585 轉載請註明出處,謝謝 如果,你聽到有人說Vert.x 是牛逼的。非常好!但是你自己想要嘗試的話,Ok great,那麼下一個問題自然是“從哪裡開

Linux一個C程式

今天開始在學習C的同時學習使用linux,通過雲伺服器來進行C開發。 接下來就是所有程式語言第一課:HelloWorld。 首先在Linux下建立新資料夾(總不能把所有學習過程的程式都堆在一個資料夾下吧

ubuntu編寫並執行一個c語言程式

對於初入Ubantu系統的小夥伴來說,進入Ubuntu最想做的事莫過於在終端(Terminal)裡執行自己的第一個C/C++程式"hello.c/hello.cpp"了。 Ubuntu預設是不包含編輯器vim和編譯器gcc。如果你是剛安裝好的Ubuntu電腦,下面我們將

MAC一個Java程式

1.JDK的安裝 搜尋Java download,第一個就是JDK的[官方下載地址](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html). 我

Ubuntu16.04一個openGL程式

1.安裝Mesa庫 sudo apt-get install libgl1-mesa-dev 2.安裝glut庫 sudo apt-get install freeglut3-dev 3安裝mesa-util sudo apt-get install

一個python小程式——即時動態時鐘(程式碼解讀)

程式碼資源來自: http://n.miaopai.com/media/K9Qlou7rdPc5TxpPaL1VDvwfv5hP~lHK   (執行有錯誤,缺少date,week和結尾部分) https://blog.csdn.net/yangxing2/article/details

《Python入門》一個Python Web程式——簡單的Web伺服器

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Pycharm+Django搭建一個Python Web程式

1.安裝django 無論是Python2.x還是Python3.x版本,都可以使用pip來安裝Django。在控制檯使用如下命令:pip install django 如: 2.檢查dgango是否安裝成功 安裝成功後,在ipython裡面或者Pycharm的Python console控制檯匯入d

C語言入門 2 安裝VS2013開發環境並編寫一個C語言程式

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

一個springMVC小程式

1.開發工具介紹 idea的安裝破解:https://www.cnblogs.com/jpfss/p/8872358.html jdk和Tomcat的配置都在裡面。 2.建立第一個小程式 2.1建立一個web專案 2.2建立大綱 2.3在web/WEB-IN

一個hello ros程式

1  設定環境變數       在使用者許可權下輸入以下命令               每次啟動一個新的shell,且要在這個shell中執行ROS時,只要執行上述s

一個js +html程式

<script type="text/javascript"> var result_1; var result_2; function get() {   var a = getFirstNumber();   var b = getT

今天算是我的一個10.24程式設計師節吧,記錄由VGG16復現過程中初見的用法、函式等,以此起步。

1.a[len(a):len(a)]=[] a=[] a[len(a):len(a)]=[]可以用來擴充套件list,類似append,但是append,又類似於”整體加入“ a=[8,9] print(a) a[len(a):len(a)]=[1,2,3] print(a,) a

Dubbo-一個Hello World程式

Dubbo 是阿里巴巴在2011年開源的分散式服務框架,是SOA服務化治理方案的核心框架。Dubbo的整體架構如圖所示; Provider: 暴露服務的服務提供方。 Consumer: 呼叫遠端服務的服務消費方。 Registry: 服務註冊與發現的註冊中心。

JavaWeb 實現一個Filter過濾器程式(教材學習筆記)

Filter被稱作過濾器,其基本功能就是對Servlet容器呼叫Servlet的過程進行攔截,從而實現一些特殊功能, Filter介面包含了三個方法 init()方法主要就是用來初始化過濾器,只會在web程式載入的時候呼叫一次 doFilter()方法是響應客戶端請求的,只要有請求就

一個linux驅動程式,hello

前面已經把學習linux的開發環境搭建好了,現在逐步開始學習開發過程。先從核心驅動開始,寫一個網上已經被寫爛的實列程式。先把它編譯好,放進linux系統執行,看看是什麼樣子。 建立資料夾hello,在資料夾下面建立檔案hello.c程式碼如下: #include <linux/

Django-編寫你的一個Django應用程式2

建立投票應用程式 您在Django中編寫的每個應用程式都包含遵循特定約定的Python包。 Django帶有一個實用程式,可以自動生成應用程式的基本目錄結構,因此您可以專注於編寫程式碼而不是建立目錄。 1、專案與應用程式 專案和應用程式有什麼區別? 應用程式是

Django-編寫你的一個Django應用程式1

一、開發環境 MacOS10.13.1 python3.7 二、安裝 安裝命令: pip3 install django 檢視版本: python3 -m django --version 2.1.2 版本的選擇: 作為學習當然選擇最新版本了, 預設安裝的