国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
使用 NetBeans IDE 5.0 開發(fā) J2EE 應(yīng)用程序的快速入門指南

使用 NetBeans IDE 5.0 開發(fā) J2EE 應(yīng)用程序的快速入門指南

樣例項(xiàng)目
是否只想試用某些 J2EE 項(xiàng)目?在 IDE 中,選擇“文件”>“新建項(xiàng)目”,然后展開“樣例”文件夾。IDE 中包含 Java BluePrints 解決方案目錄中的樣例。

本教程將向您介紹創(chuàng)建具有容器管理持久性(CMP 實(shí)體 Bean)的實(shí)體 Enterprise JavaBeansTM 組件的基本步驟。我們將使用 NetBeansTM IDE 5.0 通過現(xiàn)有的 Apache Derby 數(shù)據(jù)庫生成 CMP 實(shí)體 Bean。然后創(chuàng)建一個(gè)簡單的會(huì)話 Bean 來訪問數(shù)據(jù)庫信息和 Web 模塊客戶端。

本教程是一個(gè)有關(guān) NetBeans IDE 5.0 中的 J2EE 開發(fā)功能的快速指南,而不是如何編寫企業(yè)應(yīng)用程序的說明性指南。盡管您無需了解 J2EE 技術(shù)的一些知識也能完成本教程,但建議初學(xué)者最好還是先從 NetBeans IDE 中的 J2EE 教程開始學(xué)起。

注意:本教程旨在向您介紹如何使用 Sun JavaTM System Application Server 8.2 及其捆綁的數(shù)據(jù)庫服務(wù)器 Apache Derby。早期版本的 Sun Java System Application Server 使用 PointBase 作為捆綁的數(shù)據(jù)庫服務(wù)器。要以 PointBase 為例來完成此教程,請參見使用 NetBeans IDE 4.1 開發(fā) J2EE 應(yīng)用程序的快速入門指南

本文檔包含以下主題:

入門指南

在開始之前,必須確保安裝了所需的所有軟件。此外,還必須配置 Derby 數(shù)據(jù)庫,并填充用來生成 CMP 實(shí)體 Bean 的數(shù)據(jù)庫表。

設(shè)置環(huán)境

首先,需要在計(jì)算機(jī)上安裝 Sun Java System Application Server Platform Edition 8.2(下載)。

注意:如果在 JDK 5.0 中運(yùn)行 IDE,則應(yīng)用服務(wù)器還需要使用 JDK 5.0 中的虛擬機(jī)。要設(shè)置 IDE 使用的 JDK,請打開 IDE_INSTALL_DIR/etc/netbeans.conf,并在 netbeans_jdkhome 屬性中輸入 JDK 的路徑。要設(shè)置應(yīng)用服務(wù)器使用的 JDK,請編輯 AS_INSTALL_DIR/config/asenv(.bat) 文件并更改 AS_JAVA 環(huán)境變量。

安裝應(yīng)用服務(wù)器后,需要在 NetBeans IDE 中注冊該服務(wù)器。請注意,如果下載和安裝的 NetBeans IDE 版本與應(yīng)用服務(wù)器捆綁在一起,則不必執(zhí)行此步驟。IDE 知道捆綁的應(yīng)用服務(wù)器的位置。

  1. 轉(zhuǎn)到 NETBEANS_INSTALL_DIR/bin 目錄并運(yùn)行 netbeans 命令以打開 NetBeans IDE 5.0。如果 java 不在 PATH 變量中,則在命令行中使用 --jdkhome /path/to/jdk 開關(guān)來啟動(dòng) IDE,或?qū)?netbeans_jdkhome="/path/to/jdk" 一行添加到 NETBEANS_INSTALL_DIR/etc/netbeans.conf 文件中。
  2. 在 IDE 中,從主窗口選擇“工具”>“服務(wù)器管理器”。
  3. 單擊“添加服務(wù)器”。選擇 "Sun Java System Application Server",并為此實(shí)例指定一個(gè)名稱。然后單擊“下一步”。
  4. 指定應(yīng)用服務(wù)器的安裝目錄(例如,C:\Sun\Appserver)。
  5. 將“注冊本地缺省域”單選按鈕保持選中狀態(tài),然后選擇一個(gè)域。
  6. (可選)單擊“下一步”,輸入管理員用戶名和口令。如果不希望在 IDE 用戶目錄中存儲(chǔ)用戶名和口令,可以將這些字段保留為空。IDE 在每次需要此信息時(shí)會(huì)提示您輸入。
    注意:缺省管理員口令是 adminadmin。
  7. 單擊“完成”。IDE 將注冊該服務(wù)器,并在“運(yùn)行環(huán)境”窗口的“服務(wù)器”節(jié)點(diǎn)下面列出該服務(wù)器。

最后,啟動(dòng)應(yīng)用服務(wù)器:

  1. 在“運(yùn)行環(huán)境”窗口中,右鍵單擊該應(yīng)用服務(wù)器節(jié)點(diǎn),然后選擇“啟動(dòng)服務(wù)器”。
  2. 展開應(yīng)用服務(wù)器節(jié)點(diǎn)。該節(jié)點(diǎn)包含在應(yīng)用服務(wù)器的管理控制臺(tái)中看到的所有類別的子節(jié)點(diǎn)。通過右鍵單擊任意一個(gè)節(jié)點(diǎn)并選擇“屬性”,可對應(yīng)用服務(wù)器進(jìn)行配置。

配置 Derby 數(shù)據(jù)庫

在本教程中,您將通過 Derby 數(shù)據(jù)庫服務(wù)器中包含的其中一個(gè)表來生成 CMP Bean。Derby 數(shù)據(jù)庫服務(wù)器包含在 Sun Java System Application Server 8.2 下載文件中。

  1. 在“運(yùn)行環(huán)境”窗口中,展開“數(shù)據(jù)庫”節(jié)點(diǎn)。您會(huì)看到 jdbc:derby://localhost:1527/sample 數(shù)據(jù)庫的節(jié)點(diǎn)。
  2. 右鍵單擊 jdbc:derby://localhost:1527/sample 數(shù)據(jù)庫,然后選擇“連接”。如果系統(tǒng)提示您輸入口令,請鍵入 app 作為用戶名和口令,然后單擊“確定”。
  3. 展開 sample 數(shù)據(jù)庫節(jié)點(diǎn)和“表”節(jié)點(diǎn)。確保其中包含 CUSTOMER 節(jié)點(diǎn),如下所示。

    注意:如果修改了 sample 數(shù)據(jù)庫,可使用此 SQL 腳本對其進(jìn)行重寫。

對 EJB 模塊進(jìn)行編碼

對 Enterprise Bean 進(jìn)行編碼非常容易。IDE 會(huì)兼顧所有實(shí)現(xiàn)細(xì)節(jié),因此您可以集中精力對 EJB 模塊的業(yè)務(wù)邏輯進(jìn)行編碼。

創(chuàng)建企業(yè)應(yīng)用程序項(xiàng)目

在本示例中,我們將創(chuàng)建一個(gè)企業(yè)應(yīng)用程序項(xiàng)目作為 Web 模塊和 EJB 模塊的容器。通過使用企業(yè)應(yīng)用程序模板,您可以自動(dòng)為 Web 模塊和 EJB 模塊創(chuàng)建項(xiàng)目。

  1. 選擇“文件”>“新建項(xiàng)目”(Ctrl-Shift-N),然后從“企業(yè)”類別中選擇“企業(yè)應(yīng)用程序”模板。單擊“下一步”。
  2. 將應(yīng)用程序命名為 CustomerBook,然后指定項(xiàng)目位置。將其余設(shè)置保持為缺省值,然后單擊“完成”。

生成 CMP 實(shí)體 Bean

現(xiàn)在,我們將生成訪問 sample 數(shù)據(jù)庫的實(shí)體 Bean。對于程序要訪問的每個(gè)表,都需要一個(gè)對應(yīng)的實(shí)體 Bean。

  1. 在“項(xiàng)目”窗口中,右鍵單擊 EJB 模塊的節(jié)點(diǎn) (CustomerBook-EJBModule),然后選擇“新建”>“通過數(shù)據(jù)庫生成 CMP 實(shí)體 Bean”。
  2. 選擇“JDBC 連接”作為數(shù)據(jù)庫源,然后從組合框中選擇 jdbc:derby://localhost:1527/sample 連接。
  3. 鍵入 ejb 作為包名,然后單擊“下一步”。向?qū)@示選定數(shù)據(jù)庫中的所有表。
  4. 選擇 CUSTOMER 表,單擊“添加”,然后單擊“完成”。
    IDE 將為 CUSTOMER 表以及從 CUSTOMER 引用的任何表 (DISCOUNT_CODE) 創(chuàng)建 CMP Bean。IDE 還會(huì)創(chuàng)建一個(gè)新的 JDBC 連接池和數(shù)據(jù)源,在部署項(xiàng)目時(shí),將在應(yīng)用服務(wù)器中注冊該連接池和數(shù)據(jù)源。

對會(huì)話 Bean 進(jìn)行編碼

現(xiàn)在,我們將創(chuàng)建一個(gè)會(huì)話 Bean,用來處理 Web 應(yīng)用程序客戶端對實(shí)體 Bean 中的信息的訪問。我們將創(chuàng)建一個(gè)空會(huì)話 Bean,生成對實(shí)體 Bean 的調(diào)用,然后添加一些 business 方法。

  1. 在“項(xiàng)目”窗口中,右鍵單擊 CustomerBook-EJBModule 項(xiàng)目節(jié)點(diǎn),然后選擇“新建”>“會(huì)話 Bean”。將該會(huì)話 Bean 命名為 CustomerFacade,并將其放在 ejb 包中。將 Bean 設(shè)置為無態(tài) Bean,并且只有遠(yuǎn)程接口。然后單擊“完成”。IDE 將創(chuàng)建此 Bean,并在源代碼編輯器中打開其 Bean 類。
  2. 在源代碼編輯器中,在 Bean 類中的任意位置單擊鼠標(biāo)右鍵,選擇“企業(yè)資源”>“調(diào)用 Enterprise Bean”。選擇 CustomerEB Bean,然后單擊“確定”。IDE 將在源文件底部生成 lookupCustomerBean 方法。
  3. 將以下內(nèi)容添加到 Bean 類起始位置的變量聲明中:
    private ejb.CustomerLocalHome custHome;
  4. 現(xiàn)在,我們將在會(huì)話 Bean 的 create 方法中獲取對實(shí)體 Bean 的 Home 接口的引用。刪除 ejbCreate() 中的注釋并添加以下語句:
    custHome = lookupCustomerBean();
  5. 在 Bean 類主體中的任意位置單擊鼠標(biāo)右鍵,選擇“EJB 方法”>“添加 Business 方法”。指定以下信息:

    元素
    方法名 getCustomerInfo
    返回類型 String
    參數(shù) int custId
    異常 javax.ejb.FinderException

  6. 在源代碼編輯器中,按如下內(nèi)容編輯 getCustomerInfo business 方法:
    public String getCustomerInfo(int custId) throws javax.ejb.FinderException {    ejb.CustomerLocal customer = custHome.findByPrimaryKey(new Integer(custId));    return "Name: " + customer.getName() + ", E-mail: " +customer.getEmail();    }    

    最終的 CustomerFacadeBean.java 文件應(yīng)如此處所示。

對 Web 模塊進(jìn)行編碼

現(xiàn)在,我們需要對 Web 模塊進(jìn)行編碼,該模塊將為實(shí)體 Bean 提供用戶接口。Web 模塊包含一個(gè) Servlet,允許用戶按客戶編號對客戶進(jìn)行搜索。

創(chuàng)建定制服務(wù)定位器

在上一節(jié)中,我們在調(diào)用 Enterprise Bean 時(shí)通過 IDE 生成了內(nèi)聯(lián)查找代碼。在此節(jié)中,我們將創(chuàng)建一個(gè)定制服務(wù)定位器,IDE 將在生成對 Enterprise Bean 的調(diào)用時(shí)用到它。我們的服務(wù)定位器沒有任何特殊功能,但您可以定制企業(yè)應(yīng)用程序查找 Enterprise Bean 的方式。

  1. 在“項(xiàng)目”窗口中,右鍵單擊 CustomerBook-WebModule 節(jié)點(diǎn),然后選擇“新建”>“文件/文件夾”。在向?qū)е?,?#8220;企業(yè)”類別中選擇服務(wù)定位器模板。單擊“下一步”。
  2. 鍵入 ServiceLocator 作為類名,鍵入 Web 作為包,然后單擊“完成”。

對 Servlet 進(jìn)行編碼

在最后一步中,我們將向 Web 模塊添加一個(gè) Servlet,通過它可以查找并顯示 CUSTOMER 表中的每個(gè)客戶的信息。

  1. 在“項(xiàng)目”窗口中,右鍵單擊 CustomerBook-WebModule 節(jié)點(diǎn),然后選擇“新建”> "Servlet"。將 Servlet 命名為 CustomerDetail,然后將其放在 web 包中。然后單擊“完成”。
  2. 在源代碼編輯器中,在 Servlet 類中的任意位置單擊鼠標(biāo)右鍵,選擇“企業(yè)資源”>“調(diào)用 Enterprise Bean”。選擇 CustomerFacade 會(huì)話 Bean,將 web.ServiceLocator 類設(shè)置為服務(wù)定位器策略,然后單擊“確定”。IDE 將插入該查找方法。
  3. 按如下所示編輯 processRequest 方法:
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)    throws ServletException, IOException {    response.setContentType("text/html");    PrintWriter out = response.getWriter();    out.println("<html>");    out.println("<head>");    out.println("<title>Servlet customerDetail</title>");    out.println("</head>");    out.println("<body>");    out.println("<h1>Servlet customerDetail at " + request.getContextPath () + "</h1>");    String customerNr = request.getParameter("customer_nr");    if((customerNr != null) && !(customerNr.equals("")))    {    try{    ejb.CustomerFacadeRemote custFacade = lookupCustomerFacadeBean();    out.println("Customer‘s info for nr. " + customerNr + ": " + custFacade.getCustomerInfo(    Integer.parseInt(customerNr)));    }catch(javax.ejb.FinderException ex){    out.println("Customer with nr. " + customerNr +" not found");    }    }    out.println("<form>");    out.println("Customer number: <input type=‘text‘ name=‘customer_nr‘ />");    out.println("<input type=submit value=Select />");    out.println("</form>");    out.println("</body>");    out.println("</html>");    out.close();    }    

    最終的 CustomerDetail.java Servlet 應(yīng)如此處所示。

生成和部署應(yīng)用程序

現(xiàn)在,就可以將企業(yè)應(yīng)用程序部署到應(yīng)用服務(wù)器中了。不需要再對部署描述符進(jìn)行其他配置。IDE 已經(jīng)配置了部署描述符,并為企業(yè)應(yīng)用程序準(zhǔn)備了新的連接池和數(shù)據(jù)源。

設(shè)置程序的缺省 Web 頁

缺省情況下,Web 應(yīng)用程序在運(yùn)行時(shí)會(huì)顯示其 index.jsp 頁。由于我們的 index.jsp 是空的,因此希望 CustomerBook 項(xiàng)目顯示 CustomerDetail Servlet。

  1. 在“項(xiàng)目”窗口中,右鍵單擊 CustomerBook 項(xiàng)目,然后選擇“屬性”。接下來在左面板中單擊“運(yùn)行”。
  2. 在“相對 URL”字段中鍵入 /CustomerDetail。

運(yùn)行應(yīng)用程序

  1. 右鍵單擊 CustomerBook 項(xiàng)目并選擇“運(yùn)行項(xiàng)目”。IDE 會(huì)執(zhí)行以下所有任務(wù):
    • 生成企業(yè)應(yīng)用程序項(xiàng)目及其所有子項(xiàng)目(Web 模塊項(xiàng)目和 EJB 模塊項(xiàng)目)。
    • 如果服務(wù)器尚未運(yùn)行,請啟動(dòng)它。
    • 如果企業(yè)應(yīng)用程序已部署到應(yīng)用服務(wù)器上,請卸下它。
    • 將企業(yè)應(yīng)用程序部署到應(yīng)用服務(wù)器上。
    • 打開在指定的相對 URL 中的 Web 模塊。

您應(yīng)在外部瀏覽器中看到以下頁面。在鍵入某一客戶編號并按 Enter 鍵時(shí),頁面中應(yīng)顯示該客戶的信息。

疑難解答

一些常見問題包括:

  • 打開 CustomerDetail 時(shí)出現(xiàn) HTTP Status 404 錯(cuò)誤。這意味著,應(yīng)用服務(wù)器找不到 CustomerDetail Servlet。確保上下文根目錄 (/CustomerBook-WebModule) 與為 Web 模塊設(shè)置的根目錄匹配(右鍵單擊 Web 模塊項(xiàng)目節(jié)點(diǎn) >“屬性”>“運(yùn)行”>“上下文路徑”)。
  • 在 CustomerDetail 表單中提交客戶編號時(shí)出現(xiàn) javax.transaction.TransactionRolledbackException: CORBA TRANSACTION_ROLLEDBACK 錯(cuò)誤。這通常意味著,服務(wù)器無法訪問數(shù)據(jù)庫。如果出現(xiàn)這種情況,請執(zhí)行以下操作:
    • 確保 Derby 數(shù)據(jù)庫服務(wù)器正在運(yùn)行。要啟動(dòng) Derby,請選擇“工具”> "Derby" >“啟動(dòng) Derby 服務(wù)器”。
    • 確保在應(yīng)用服務(wù)器中正確注冊了資源池和數(shù)據(jù)源。要對其進(jìn)行檢查,可轉(zhuǎn)到“運(yùn)行環(huán)境”窗口并展開應(yīng)用服務(wù)器的 JDBC 節(jié)點(diǎn)。“JDBC 資源”節(jié)點(diǎn)應(yīng)包含 jdbc/derby_net 節(jié)點(diǎn);“連接池”節(jié)點(diǎn)應(yīng)包含 derby_netConnectionPool 節(jié)點(diǎn)。注冊連接池和數(shù)據(jù)源(如果尚未注冊):

      1. 展開 CustomerBook-EJBModule 項(xiàng)目的“服務(wù)器資源”節(jié)點(diǎn)。
      2. 右鍵單擊 connection-pool-derby_net.sun-resource 節(jié)點(diǎn),然后選擇“注冊”。
      3. datasource-jdbc_derby_net.sun-resource 節(jié)點(diǎn)執(zhí)行相同的步驟。

注意:要查看服務(wù)器日志,請轉(zhuǎn)至“運(yùn)行環(huán)境”窗口,右鍵單擊應(yīng)用服務(wù)器節(jié)點(diǎn),然后選擇“查看服務(wù)器日志”。

后續(xù)步驟

有關(guān)使用 NetBeans IDE 5.0 的詳細(xì)信息,請參見以下資源:

要發(fā)送意見和建議、獲得支持以及隨時(shí)了解 NetBeans IDE J2EE 開發(fā)功能的最新開發(fā)情況,請加入 nbj2ee@netbeans.org 郵件列表

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
使用NetBeans 6.0 在10分鐘內(nèi)創(chuàng)建一個(gè) Ruby 博客程序
jbpm 指南第一章翻譯
NetBeans IDE Ruby 快速入門教程
將 JBuilder 項(xiàng)目導(dǎo)入到 NetBeans IDE 中
濃縮精華的架構(gòu)演進(jìn)過程,我連看了六遍
NetBeans或吞并Creator 同室操戈為哪般?
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服