亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

J2EE應用部署(二):實踐篇

2019-11-18 12:31:50
字體:
來源:轉載
供稿:網友

  提綱:
  一、配置J2EE包
  1.1 企業應用的開發過程
  1.2 J2EE應用包的結構
  1.3 EAR部署描述器
  二、一個簡單的實例
  2.1 組件
  2.2 裝配應用
  2.3 部署和運行應用
  三、可選的應用部署描述器標記
  正文:
  一、配置J2EE包
  在上一篇文章中,我們了解了J2EE應用封裝和部署的一些基本知識,包括類裝載器的不同角色和行為。接下來就可以配置和部署企業應用。為此,我們必須了解創建EAR文件的過程,以及應用部署描述器的內容。
  1.1 企業應用的開發過程
  構造一個企業應用的過程可以歸納為:
  構造各個組件,包括EJB、jsp頁面、Servlet和資源適配器等。
  把這些組件打包成JAR文件格式的J2EE模塊,同時提供J2EE模塊部署描述器。J2EE模塊是一種具有相同類型的一個或者多個J2EE組件的集合,也就是說,一個EJB模塊可以包含一個以上的EJB,一個Web應用模塊可以包含多個JSP頁面和Servlet,一個資源適配器包可以包含多個資源適配器。
  結合一個或者多個J2EE模塊創建EAR文件,同時提供企業應用部署描述器,構造出J2EE應用。最簡單的J2EE應用只包含一個J2EE模塊,稍微復雜一點的J2EE應用可以由多個J2EE模塊構成,更復雜的J2EE應用可以包含多個J2EE模塊、模塊里面包含的類所用到的依靠庫。J2EE應用還可以包含描述部署過程的幫助文件和其他文檔。
  把J2EE應用部署到J2EE平臺上。安裝J2EE應用,然后把它與應用服務器提供的基礎設施整合。在J2EE應用部署過程中,每一個J2EE模塊按照該類模塊的部署要求分別部署,每一個組件被部署到適合該組件類型的合適容器。例如,假設有一個my.ear文件,它包含my.jar和my.war。部署應用時,應用服務器的部署工具將把my.ear文件拷貝到應用服務器;接著,應用服務器的部署機制將提取出my.jar和my.war模塊,按照當前平臺的類裝載要求分別部署這兩個模塊。假如這兩個模塊都部署成功,則整個J2EE應用部署成功。
  J2EE企業應用開發和部署過程可以圖示如下:
   J2EE應用部署(二):實踐篇(圖一)
  組件被封裝成J2EE模塊時帶有一個部署描述器,J2EE模塊可以通過部署工具創建。部署工具還可以用來部署和“反部署”獨立的J2EE模塊,用來把一個或者多個J2EE模塊和另外的部署描述器封裝成J2EE應用,用來把額外的內容加入J2EE應用或從J2EE應用刪除某些內容,或者把整個應用部署到應用服務器上。
  1.2 J2EE應用包的結構
  J2EE企業應用包的結構很簡單,它由一個或多個J2EE模塊以及一個META-INF/目錄下名為application.xml的部署描述器構成。文件用JAR格式打包,存儲在擴展名為.ear的文件中。EAR文件可以包含依靠庫,但這是可選的。EAR文件的一般結構是:
  EJB .jar文件 Web應用.war文件 資源適配器.rar文件 應用客戶端.jar文件 依靠庫.jar文件 META-INF/ application.xml 
  下面是一個EAR文件的例子,它包含一個EJB模塊、一個Web應用模塊,不包含依靠庫:
  MyFirstEJB.jar MyFirstWeb.war META-INF/ application.xml 
  保存在EAR文件中的J2EE模塊不一定要在根目錄之下。例如,假設一個EAR文件包含一個EJB模塊、一個資源適配器包,它的結構可以如下:
  ejbs/ MySecondEJB.jar resources/ MyLegacyAdapter.rar META-INF/ application.xml 
  最后,下面是一個包含許多組件和依靠庫的EAR文件:
  ejbs/ MyThirdEJB.jar MyFourthEJB.jar resources/ MyLegacyAdapter.rar web/ MyWebApp1.war MyWebApp2.war lib/ Myxmlx.jar Mycommon.jar META-INF/ application.xml 
  EAR文件可以用部署工具創建,或者也可以改用JDK提供的jar工具創建。創建步驟為:
  創建一個用來容納EAR文件內容的臨時目錄。
  把所有J2EE模塊放入臨時目錄,創建META-INF/目錄。
  在META-INF/目錄下創建application.xml部署描述器。
  完成上述步驟之后,進入臨時目錄,運行jar工具創建EAR文件。
  下面是一個運行jar工具的例子,它對前面例子進行打包:
  jar cvf MyApplication.ear ejbs resources web lib META-INF 
  創建好EAR文件之后,我們就可以把J2EE應用部署到應用服務器上。
  1.3 EAR部署描述器
  理想情況下,我們用圖形界面的工具編寫application.xml文件。然而,有時我們必須手工構造或維護application.xml文件,因此理解application.xml文件用到的標記很重要。
  application.xml部署描述器并不復雜,不需要很多標記就可以構造出一個合法的描述器。部署描述器的DTD定義的標記包括:
  J2EE應用部署(二):實踐篇(圖二)
  所有合法的J2EE應用描述器必須包含如下DOCTYPE聲明:
  
    1.3//EN" "http://Java.sun.com/dtd/application_1_3.dtd"> 
  
  
  配置一個簡單的application.xml部署描述器只需如下幾步:
  
  用標記聲明一個企業應用。標記可以包含、和標記,供部署工具提供有關應用的描述信息使用。這些標記的內容和EJB、Web應用、資源適配器部署描述器內的同一標記的內容相同。
  
  企業應用內的每一個模塊必須有一個相應的標記描述模塊。EJB用標記描述,Web應用用標記描述,資源適配器用標記描述,應用客戶端程序用標記描述。除了標記之外,其他標記的內容都是指定EAR文件內包含J2EE模塊的文件的相對URI,該URI必須相對于EAR文件的根。
  
  假如企業應用包含一個Web應用J2EE模塊,則必須提供一個標記和一個標記。標記是一個相對URI,指定EAR文件內包含J2EE模塊的文件。這個URI和、、標記的URI同屬一類。標記指定Web應用將在其下運行的上下文的名字。所有針對該Web應用內JSP頁面和Servlet的請求都必須加上該上下文名字作為前綴。例如,假如部署Web應用時指定了:
  web1 
  則所有對JSP頁面和Servlet的請求必須是如下形式:
  http://主機:端口/web1/......
  在EAR文件內封裝的每一個Web應用都要有一個唯一的值,任何兩個Web應用不能有相同的值。假如EAR文件只包含一個Web應用,的值可以是空字符串。
  二、一個簡單的實例
  在大多數使用EAR文件的情形中,企業應用包含一個EJB模塊、一個Web應用模塊,Web應用要用到EJB模塊里面的EJB組件。下面的例子就屬于這種情況,EJB和Web應用不需要任何依靠庫。下面我們來看看構造這個例子的具體過程。
  2.1 組件
  在這個例子中,一個Servlet在無狀態會話EJB的遠程接口上調用invoke()方法,Servlet和EJB輸出一些文字信息表明程序已經成功執行。假如控制臺出現異常報告,它很可能意味著組件封裝存在問題。本例的所有EJB源文件都屬于test包,Servlet屬于未命名的包。本例用到的java文件包括:
  MyEnterPRiseServlet.java:Servlet的實現類,執行對EJB的調用
  MyEnterprise.java:EJB的遠程接口。
  MyEnterpriseHome.java:EJB的Home接口。
  MyEnterpriseBean.java::EJB的實現類。
  MyEnterpriseBean.java的實現代碼是:
  package test;
  import javax.ejb.*;
  public class MyEnterpriseBean implements sessionBean {
  
  private InitialContext ctx;
  
  public void ejbCreate() {}
  public void ejbRemove() {}
  public void ejbActivate() {}
  public void ejbPassivate() {}
  public void setSessionContext(SessionContext c) {}
  public void invoke() {
  System.out.println("正在執行EJB.");
  }
  } 
  MyEnterpriseServlet.java Servlet的實現代碼是:
  import javax.servlet.*;
  import javax.servlet.http.*;
  import java.io.*;
  import javax.naming.*;
  
  public class MyEnterpriseServlet extends HttpServlet {
   
   public void service(HttpServletRequest req, HttpServletResponse res)
       throws IOException{
    res.setContentType("text/Html;charset=GB2312");
    PrintWriter out = res.getWriter();
  
    try {
      System.out.println("正在服務器上運行Servlet");
      InitialContext ctx = new InitialContext();
   
       test.MyEnterpriseHome eHome = (test.MyEnterpriseHome)
                 ctx.lookup("MyEnterpriseEJB");
       test.MyEnterprise e = eHome.create();
       e.invoke();
  
    } catch(Exception e) {
      out.println("異常: " + e);
      System.out.println("異常: " + e);
    }
  
    out.println("測試");
    out.println("");
    out.println("

檢查控制臺確信EJB已經被調用

");
    out.println("");
  }
  }
  編寫好EJB和相關的部署描述器(此處不列出)之后,接下來要把EJB封裝成MyEnterpriseBean.jar文件。在JNDI名稱空間配置中,EJB綁定到MyEnterpriseEJB。編寫好Servlet代碼和相關的部署描述器(此處也不列出)之后,Servlet應該封裝成MyWebApp.war文件。
  2.2 裝配應用
  構造好各個

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91国在线精品国内播放| 主播福利视频一区| 国产精品久久久久久久7电影| 久热在线中文字幕色999舞| 3344国产精品免费看| 日韩精品黄色网| 日韩av大片在线| 欧美高清视频在线观看| 欧美一区二区三区免费观看| 久久久在线免费观看| 久久久伊人欧美| 亚洲欧美国产日韩天堂区| 中文字幕综合在线| 中文字幕日韩高清| 亚洲最大福利视频网站| 91沈先生作品| 日本亚洲精品在线观看| 久久久久久久久久亚洲| 亚洲女同精品视频| 久久综合国产精品台湾中文娱乐网| 欧美伦理91i| 免费91麻豆精品国产自产在线观看| 欧美激情精品久久久久久久变态| 激情成人在线视频| 成人av.网址在线网站| 亚洲另类欧美自拍| 亚洲白拍色综合图区| 欧美日韩午夜视频在线观看| 国产精品一二区| 6080yy精品一区二区三区| 亚洲一区二区三| 国产精品免费视频久久久| 日韩成人性视频| 亚洲精品自拍偷拍| 国产一区二区三区在线播放免费观看| 另类天堂视频在线观看| 97超碰国产精品女人人人爽| 96精品久久久久中文字幕| 亚洲va欧美va国产综合剧情| 国产成人精品亚洲精品| 亚州精品天堂中文字幕| 亚洲a在线观看| 日韩电影中文字幕一区| 美女久久久久久久| 国产欧美精品xxxx另类| 欧美成在线视频| 国产精品高精视频免费| 亚洲国产成人91精品| 日韩精品一二三四区| 日韩二区三区在线| 国产精品久久久久久av下载红粉| 国产在线不卡精品| 久久中文精品视频| 久久精品91久久香蕉加勒比| 日韩av片电影专区| 亚洲欧美制服第一页| 国产欧美日韩91| 97人洗澡人人免费公开视频碰碰碰| 黄网动漫久久久| 欧美大尺度激情区在线播放| 久久深夜福利免费观看| 美日韩丰满少妇在线观看| 国产日本欧美一区二区三区在线| 欧美在线精品免播放器视频| 国产精品视频精品视频| 国产美女久久精品| 欧美日韩亚洲精品内裤| 国产第一区电影| 久久香蕉国产线看观看网| 69久久夜色精品国产69乱青草| 亚洲嫩模很污视频| 日韩欧美在线视频日韩欧美在线视频| 久久人人看视频| 欧美极品美女电影一区| 久久频这里精品99香蕉| 九九热视频这里只有精品| 狠狠色狠色综合曰曰| 国产精品美女网站| 国模叶桐国产精品一区| 亚洲人成欧美中文字幕| 国产一区视频在线播放| 久久国产精品首页| 黄色成人在线播放| 黑人精品xxx一区| 欧美老女人性生活| 亚洲国产精品人久久电影| 狠狠色香婷婷久久亚洲精品| 日韩欧美中文在线| 一区二区三区精品99久久| 欧美小视频在线| 亚洲少妇中文在线| 国产91久久婷婷一区二区| 欧美孕妇孕交黑巨大网站| 日韩av综合中文字幕| 久久国产天堂福利天堂| 日韩电影在线观看永久视频免费网站| 欧美成人精品不卡视频在线观看| 亚洲а∨天堂久久精品喷水| 91精品国产91久久久久久吃药| 国产精品一区二区在线| 色偷偷9999www| 欧美成人精品不卡视频在线观看| 欧美麻豆久久久久久中文| 欧美亚洲伦理www| 亚洲人成自拍网站| 日韩最新中文字幕电影免费看| 久久精品国产91精品亚洲| 美女啪啪无遮挡免费久久网站| 国产精品精品一区二区三区午夜版| 日韩av资源在线播放| 日韩中文视频免费在线观看| 国产成人精品在线| 亚洲加勒比久久88色综合| 国a精品视频大全| 欧美日韩国产中字| 国产99久久精品一区二区| 中文字幕欧美日韩精品| 国产精品视频在线播放| 精品久久久久久久久中文字幕| 亚洲免费人成在线视频观看| 久热精品视频在线免费观看| 日韩av网站大全| 91国在线精品国内播放| 亚洲va欧美va国产综合久久| 日韩av电影在线免费播放| 91成人福利在线| 在线观看国产精品91| 欧美亚洲视频在线观看| 日韩精品在线影院| 欧美激情免费看| 亚洲女人天堂色在线7777| 国产a∨精品一区二区三区不卡| 亚洲www永久成人夜色| 日韩在线观看免费全| 欧美视频免费在线| 国内精品在线一区| 久久偷看各类女兵18女厕嘘嘘| 日韩一区二区精品视频| 欧美成人免费播放| 欧美亚洲国产另类| 久久精品国产2020观看福利| 亚洲www永久成人夜色| 国产精品久久综合av爱欲tv| 久久国产精彩视频| 国产+成+人+亚洲欧洲| 欧美极品少妇全裸体| 亚洲电影免费观看高清完整版在线观看| 91精品国产91久久久久久最新| 成人精品久久一区二区三区| 日本伊人精品一区二区三区介绍| 欧美黑人一区二区三区| 91av免费观看91av精品在线| 亚洲精品国产福利| 久久精品欧美视频| 亚洲欧美一区二区三区四区| 日韩综合视频在线观看| 欧美视频在线观看免费网址| 久久久精品中文字幕| 亚洲人成电影在线| 成人a免费视频| 亚洲男人天堂久| 欧美黑人一级爽快片淫片高清| 精品国产一区二区三区久久狼黑人| 亚洲黄色在线看|