blob: 96aee72ace578d3dcf3238d2e760cd8c337c2ad1 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--
Copyright (c) 2009, 2010, 2011, Oracle and/or its affiliates. All rights reserved.
-->
<html>
<head>
<title>为 Oracle WebLogic Server 开发企业应用程序 - NetBeans IDE 教程</title>
<!-- BEGIN METADATA -->
<meta http-equiv="content-type" content="text/html; charset=UTF-8" >
<meta name="description" content="Demonstrates how to create an enterprise application that is deployed to the Oracle WebLogic server.">
<meta name="KEYWORDS" content="NetBeans, CRUD, JPA, JSF, WebLogic, weblogic, Tutorial, Database">
<link rel="stylesheet" href="../../../netbeans.css" type="text/css">
<script type="text/javascript" src="../../../images_www/js/window_opener.js"></script>
<!-- END METADATA -->
</head>
<body>
<a name="top"></a>
<h1>为 Oracle WebLogic Server 开发企业应用程序</h1>
<p>本教程介绍如何使用 IDE 创建使用 JavaServer Faces (JSF) 2.x 和 Java 持久性 API (JPA) 2.0 的 Web 应用程序,然后将应用程序部署到 Oracle WebLogic Server。在本教程中,您将向 IDE 注册 WebLogic Server,然后使用 IDE 中的向导创建 JDBC 资源和实体以及 Bean 类。随后,您将使用 IDE 将应用程序部署到服务器并注册新数据源。</p>
<p><b>目录</b></p>
<img alt="此页上的内容适用于 NetBeans IDE 7.2、7.3、7.4 和 8.0" class="stamp" src="../../../images_www/articles/73/netbeans-stamp-80-74-73.png" title="此页上的内容适用于 NetBeans IDE 7.2、7.3、7.4 和 8.0">
<ul class="toc">
<li><a href="#01">注册 Oracle WebLogic Server</a>
<ul class="toc">
<li><a href="#01a">安装服务器</a></li>
<li><a href="#01b">在 IDE 中注册服务器</a></li>
<li><a href="#01c">打开管理控制台</a></li>
<li><a href="#01e">启用 JPA 2.0 支持</a></li>
</ul>
</li>
<li><a href="#02">创建 Web 应用程序项目</a>
<ul>
<li><a href="#02b">创建数据库连接</a></li>
<li><a href="#02c">创建持久性单元</a></li>
<li><a href="#02d">创建实体类</a></li>
<li><a href="#02e">生成 JSF 页</a></li>
<li><a href="#02f">运行应用程序</a></li>
</ul>
</li>
<!-- <li><a href="#03">Troubleshooting</a></li>-->
</ul>
<p><b>要学习本教程,您需要具备以下软件和资源。</b></p>
<table>
<tbody>
<tr>
<th class="tblheader" scope="col">软件或资源</th>
<th class="tblheader" scope="col">要求的版本</th>
</tr>
<tr>
<td class="tbltd1"><a href="/downloads/">NetBeans IDE</a></td>
<td class="tbltd1">7.2、7.3、7.4、8.0、Java EE</td>
</tr>
<tr>
<td class="tbltd1"><a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html">Java 开发工具包 (JDK)</a></td>
<td class="tbltd1">版本 6 或 7</td>
</tr>
<tr>
<td class="tbltd1"><a href="http://www.oracle.com/technetwork/middleware/weblogic/downloads/index.html">Oracle WebLogic Server</a></td>
<td class="tbltd1">11g Rel 1(10.3.4、10.3.5)、12c (12.1.1.0)</td>
</tr>
<tr>
<td class="tbltd1">样例数据库</td>
<td class="tbltd1">MySQL 或 JavaDB</td>
</tr>
</tbody>
</table>
<p class="notes"><strong>注:</strong></p>
<div class="indent">
<ul>
<li>该项目使用适用于 MySQL 或 JavaDB 数据库服务器的 <strong><tt>sample</tt></strong> 数据库。有关在 IDE 中使用 MySQL 数据库服务器和创建数据库连接的详细信息,请参见<a href="../ide/mysql.html">连接到 MySQL 数据库</a>教程。或者,如果在 IDE 安装期间安装了 GlassFish Server,则也可以使用在 IDE 中默认注册的 JavaDB <tt>sample</tt> 数据库的数据库连接。
</li>
</ul>
</div>
<!--+++++++++++++++++++++++ Registering +++++++++++++++++++++++-->
<a name="01"></a>
<h2>注册 Oracle WebLogic Server</h2>
<p>在本教程中,您将向 Oracle WebLogic Server 中部署一个 Web 应用程序。要从 IDE 中将应用程序部署到 WebLogic Server,您需要在 IDE 中注册一个服务器实例。本部分介绍如何使用 IDE 中的添加服务器实例向导注册 WebLogic Server 实例。
</p>
<!--+++++++++++++++++++++++ Downloading +++++++++++++++++++++++-->
<div class="indent">
<a name="01a"></a>
<h3>下载并安装服务器</h3>
<p>在注册服务器之前,您需要下载 WebLogic Server 安装程序,然后按照《<a href="http://download.oracle.com/docs/cd/E17904_01/doc.1111/e14142/toc.htm" target="_blank">Oracle WebLogic Server 安装指南</a>》中介绍的步骤在本地计算机上安装服务器。除了安装服务器以外,您还需要创建一个 WebLogic 域,然后才能在 IDE 中注册服务器。</p>
<ol>
<li><a href="http://www.oracle.com/technetwork/middleware/weblogic/downloads/index.html" target="_blank">Oracle WebLogic Server 下载</a>页下载安装程序。</li>
<li>按照《<a href="http://download.oracle.com/docs/cd/E17904_01/doc.1111/e14142/toc.htm" target="_blank">Oracle WebLogic Server 安装指南</a>》中的步骤安装服务器。
<p>请务必记下用户名和口令。</p></li>
<li>创建一个 WebLogic 域。
<p>您可以使用 <a href="http://download.oracle.com/docs/cd/E17904_01/web.1111/e14140/newdom.htm#i1073602">WebLogic 配置向导的图形模式</a>来帮助创建域。</p>
</li>
</ol>
<p class="tips">有关安装和设置服务器的详细信息,您可能需要查阅《WebLogic Server 安装指南》的以下部分。 </p>
<ul>
<li><a href="http://download.oracle.com/docs/cd/E17904_01/doc.1111/e14142/prepare.htm">准备安装</a></li>
<li><a href="http://download.oracle.com/docs/cd/E17904_01/web.1111/e14140/intro.htm">WebLogic 域简介</a></li>
<li><a href="http://download.oracle.com/docs/cd/E17904_01/web.1111/e14140/newdom.htm">创建 WebLogic 域</a></li>
</ul>
<!--+++++++++++++++++++++++ Registering with IDE +++++++++++++++++++++++-->
<a name="01b"></a>
<h3>在 IDE 中注册服务器</h3>
<p>在安装服务器后,可以在添加服务器实例向导中指定服务器域,以注册一个服务器实例。</p>
<ol>
<li>打开 "Services"(服务)窗口。</li>
<li>右键单击 "Servers"(服务器)节点,然后选择 "Add Server"(添加服务器)。</li>
<li>选择 "Oracle WebLogic Server"。单击 "Next"(下一步)。</li>
<li>单击 "Browse"(浏览)并找到包含服务器安装的目录。单击 "Next"(下一步)。
<p>IDE 将自动识别服务器实例的域。</p>
</li>
<li>键入该域的用户名和口令。 </li>
<li>启用 JPA 2.0(仅限 WebLogic Server 10.3.4 或 10.3.5)。单击 "Finish"(完成)。
<p class="notes"><strong>注:</strong>如果注册 WebLogic Server 12c (12.1.1.0) 的实例,则不需要启用 JPA 2.0,因为默认情况下会启用 JPA 2.0。如果注册 WebLogic Server 11g Rel 1(10.3.4 或 10.3.5)的实例,则可在注册服务器时或在注册服务器后在服务器管理器中启用 JPA 2.0。有关更多详细信息,请参见下面的<a href="#01e">在 Oracle WebLogic Server 11g 上启用 JPA 2.0 支持</a>部分。</p></li>
</ol>
<img alt="添加服务器向导" class="margin-around b-all" src="../../../images_www/articles/74/web/jsf-weblogic/add-weblogic-server2.png" title="添加服务器向导">
<p>单击 "Finish"(完成),此时将在 "Services"(服务)窗口的 "Servers"(服务器)节点下面显示 Oracle WebLogic Server。</p>
<p>您可以右键单击 Oracle WebLogic Server 节点以执行各种操作,其中包括:</p>
<ul>
<li>启动和停止服务器</li>
<li>在浏览器中打开管理控制台</li>
<li>在 IDE 的 "Output"(输出)窗口中查看服务器日志 </li>
</ul>
<img alt="&quot;Services&quot;(服务)窗口的屏幕快照" class="margin-around b-all" src="../../../images_www/articles/74/web/jsf-weblogic/weblogic-services-window1.png" title="&quot;Services&quot;(服务)窗口中的 WebLogic Server">
<!--+++++++++++++++++++++++ Opening Admin Console +++++++++++++++++++++++-->
<a name="01c"></a>
<h3>打开管理控制台</h3>
<p>在本练习中,将在浏览器中打开 WebLogic Server 管理控制台。通过使用管理控制台,您可以配置服务器设置以及查看部署的应用程序和可用资源。</p>
<ol>
<li>使用以下方法启动服务器:在 "Services"(服务)窗口中右键单击 "Oracle WebLogic Server" 节点,然后选择 "Start"(启动)。
<p>在启动服务器时,您可以在 "Output"(输出)窗口的 "Oracle WebLogic Server" 标签中查看服务器日志。</p>
<p class="tips">如果未显示该标签,您可以右键单击 "Oracle WebLogic Server" 节点,然后选择 "View Server Log"(查看服务器日志)。</p></li>
<li>右键单击 "Oracle WebLogic Server" 节点,然后选择 "View Admin Console"(查看管理控制台)。
<p>在选择 "View Admin Console"(查看管理控制台)时,将在浏览器中打开服务器的登录屏幕。</p></li>
<li>使用在安装服务器时指定的用户名和口令进行登录。 </li>
</ol>
<p>在登录后,将在浏览器中看到管理控制台主页。</p>
<img alt="Oracle WebLogic Server 管理控制台的屏幕快照" class="margin-around b-all" src="../../../images_www/articles/74/web/jsf-weblogic/admin-console1.png" title="Oracle WebLogic Server 管理控制台">
<!--+++++++++++++++++++++++ Setting Persistence Provider +++++++++++++++++++++++-->
<!--+++++++++++++++++++++++ Enabling JPA 2.0 +++++++++++++++++++++++-->
<h3>在 Oracle WebLogic Server 11g 上启用 JPA 2.0 支持<a name="01e"></a></h3>
<p>如果使用 Oracle WebLogic Server 11g (10.3.4, 10.3.5),则需启用对 Java 持久性 API (JPA) 2.0 的支持并将默认的持久性提供器设置为 TopLink。Oracle WebLogic Server 11g 是一个 Java EE 5 容器,它与 JPA 1.0 和 JPA 2.0 兼容。当您安装 Oracle WebLogic Server 10.3.4 和 10.3.5 时会默认启用 JPA 1.0,但 WebLogic Server 安装包含支持 JPA 2.0 所需的文件。注册服务器实例或在 IDE 的服务器管理器中时,可以为 WebLogic Server 启用 JPA 2.0。也可以执行 WebLogic Server 文档中有关<a href="http://download.oracle.com/docs/cd/E17904_01/web.1111/e13720/using_toplink.htm#EJBAD1309">在 WebLogic Server 中将 JPA 2.0 与 TopLink 一起使用</a>的步骤。</p>
<p>WebLogic Server 支持 Java 持久性 API (JPA),并与 Oracle TopLink 和 Kodo 持久性库捆绑在一起。在本练习中,将在 WebLogic Server 管理控制台中将默认持久性提供器从 Kodo 更改为 Oracle Toplink。</p>
<p class="notes"><strong>注:</strong>安装 WebLogic Server 12c 时默认启用 TopLink 和 JPA 2.0 支持。</p>
<p>要在服务器管理器中启用 JPA 2.0 支持并设置默认的持久性提供器,请执行以下步骤。</p>
<ol>
<li>在 "Services"(服务)窗口中,右键单击 "Oracle WebLogic Server" 节点,然后选择 "Properties"(属性)以打开服务器管理器。
<p>也可以从主菜单中选择 "Tools"(工具)> "Servers"(服务器),以打开服务器管理器。</p>
<img alt="服务器管理器中的 &quot;Domain&quot;(域)标签的屏幕快照" class="margin-around b-all" src="../../../images_www/articles/74/web/jsf-weblogic/weblogic-properties-enablejpa.png" title="服务器管理器中的 &quot;Domain&quot;(域)标签">
<p>在服务器管理器的 "Domain"(域)标签中,您可以查看和修改用户名和口令。</p>
</li>
<li>单击 "Enable JPA 2"(启用 JPA 2)。单击 "Close"(关闭)。
<p>添加 "Enable JPA 2"(启用 JPA 2)时,IDE 将修改 WebLogic Server 类路径来添加文件,从而启用 JPA 2 支持。</p>
<p class="notes"><strong>注:</strong>您也可以使用 Oracle Smart Update 或通过手动修改 WebLogic 类路径来启用 JPA 2.0。有关启用 JPA 2.0 支持的更多详细信息,请参见以下链接。</p>
<ul>
<li><a href="http://download.oracle.com/docs/cd/E17904_01/web.1111/e13720/using_toplink.htm#EJBAD1309">在 WebLogic Server 中将 JPA 2.0 与 TopLink 一起使用</a></li>
<li><a href="http://forums.oracle.com/forums/thread.jspa?threadID=1112476">OTN 论坛:11g Release 1 Patch Set 3 (WLS 10.3.4)</a></li>
<li><a href="http://wiki.eclipse.org/EclipseLink/Development/JPA_2.0/weblogic">在 WebLogic 10.3 中运行 JPA 2.0 API</a></li>
</ul>
</li>
<li>在浏览器中打开 Oracle WebLogic Server 管理控制台并登录。</li>
<li>在管理控制台的 "Domain Configurations"(域配置)部分下面,单击 <strong>Domain</strong>(域)。</li>
<li>在 "Configuration"(配置)标签下单击 <strong>JPA</strong> 标签。</li>
<li>在 "Default JPA Provider"(默认 JPA 提供器)下拉列表中选择 <strong>TopLink</strong>。单击 "Save"(保存)。 </li>
</ol>
<img alt="Oracle WebLogic Server 管理控制台中的 &quot;JPA&quot; 标签的屏幕快照" class="margin-around b-all" src="../../../images_www/articles/72/web/jsf-weblogic/admin-console-jpa.png" title="Oracle WebLogic Server 管理控制台中的 &quot;JPA&quot; 标签">
<p>如果应用程序未明确指定持久性提供器,则单击 "Save"(保存)后,Oracle TopLink 将成为部署到服务器的应用程序的默认持久性提供器。</p>
<p class="notes"><strong>注:</strong>本教程中的应用程序将使用 Java 事务 API (JTA) 管理事务。在安装 WebLogic 时,将默认启用 JTA。您可以在域的 "Configuration"(配置)标签上的 "JTA" 标签中修改 JTA 设置。</p>
</div>
<!--+++++++++++++++++++++++ Creating Application +++++++++++++++++++++++-->
<a name="02"></a>
<h2>创建 Web 应用程序</h2>
<p>在本教程中,您将创建一个 Java EE Web 应用程序。该 Web 应用程序包含基于 sample 数据库中的表的实体类。在创建数据库连接后,将创建一个持久性单元,并使用 IDE 中的向导通过数据库生成实体类。然后,使用向导基于实体类创建 JSF 页。
</p>
<div class="indent">
<!--+++++++++++++++++++++++ Creating Project +++++++++++++++++++++++-->
<a name="02"></a>
<h3>创建项目</h3>
<p>在本练习中,将使用新建项目向导创建一个 Web 应用程序,并将 Oracle WebLogic Server 指定为目标服务器。</p>
<ol>
<li>选择 "File"(文件)> "New Project"(新建项目)(Ctrl-Shift-N 组合键;在 Mac 上为 ⌘-Shift-N 组合键)。</li>
<li>从 "Java Web" 类别中选择 "Web Application"(Web 应用程序)。单击 "Next"(下一步)。</li>
<li>键入 <strong>WebLogicCustomer</strong> 作为项目名称,并指定项目位置。</li>
<li>取消选中 "Use Dedicated Folder"(使用专用文件夹)选项(如果该选项处于选中状态)。单击 "Next"(下一步)。</li>
<li>从 "Server"(服务器)下拉列表中选择 <strong>Oracle WebLogic Server</strong></li>
<li>选择 <strong>Java EE 5</strong><strong>Java EE 6 Web</strong> 作为 Java EE 版本。单击 "Next"(下一步)。<br>
<p class="notes"><strong>注:</strong>只有在注册了 WebLogic Server 12c 的实例时,Java EE 6 Web 才可用。</p>
<img alt="新建项目向导的屏幕快照" class="margin-around b-all" src="../../../images_www/articles/72/web/jsf-weblogic/new-project-ee6.png" title="新建项目向导中选择的 Weblogic"></li>
<li>选择 "JavaServer Faces" 框架。</li>
<li>从 "Server Library"(服务器库)下拉列表中选择 "JSF 2.x"。单击 "Finish"(完成)。<br> <img alt="新建项目向导的 &quot;Frameworks&quot;(框架)面板的屏幕快照" class="margin-around b-all" src="../../../images_www/articles/72/web/jsf-weblogic/projectwizard-serverlib.png" title="新建项目向导的 &quot;Frameworks&quot;(框架)面板">
</li>
</ol>
<p>单击 "Finish"(完成),此时 IDE 将创建 Web 应用程序项目并在编辑器中打开 <tt>index.xhtml</tt>。在 "Projects"(项目)窗口中,您可以看到 IDE 在 "Configuration Files"(配置文件)节点下创建了 <tt>weblogic.xml</tt> 描述符文件和 <tt>web.xml</tt></p>
<img alt="&quot;Projects&quot;(项目)窗口中的 weblogic.xml 的屏幕快照" class="margin-around b-all" src="../../../images_www/articles/72/web/jsf-weblogic/wl-projects-window1.png" title="&quot;Projects&quot;(项目)窗口中选择的 weblogic.xml">
<p>如果在编辑器中打开 <tt>web.xml</tt>,您可以看到 <tt>faces/index.xhtml</tt> 指定为默认索引页。如果在编辑器中打开 <tt>weblogic.xml</tt>,此文件将类似于以下内容。</p>
<pre class="examplecode">
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;weblogic-web-app xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd"&gt;
&lt;jsp-descriptor&gt;
&lt;keepgenerated&gt;true&lt;/keepgenerated&gt;
&lt;debug&gt;true&lt;/debug&gt;
&lt;/jsp-descriptor&gt;
&lt;context-root&gt;/WebLogicCustomer&lt;/context-root&gt;
&lt;/weblogic-web-app&gt;</pre>
<p class="notes"><strong>注:</strong></p>
<ul>
<li>如果 <tt>weblogic.xml</tt> 文件包含 <tt>&lt;fast-swap></tt> 元素,请通过确认 <tt>&lt;enabled></tt> 元素的值为 <strong>false</strong> 来确认已禁用 <tt>fast-swap</tt>
<pre class="examplecode">
&lt;fast-swap&gt;
&lt;enabled&gt;<strong>false</strong>&lt;/enabled&gt;
&lt;/fast-swap&gt;</pre>
</li>
<li>如果目标服务器为 WebLogic Server 11g(10.3.4 或 10.3.5),则服务器安装将包含在应用程序中使用 JSF 1.2 和 JSF 2.x 所需的库,但在默认情况下会取消激活这些库。您需要部署并安装 JSF 2.x 库,然后才能开始使用这些库。如果尚未安装该库,IDE 将提示您安装;如果在新建项目向导中选择了该库,则 IDE 可以安装该库。该库只需要安装一次。<br> <img alt="&quot;Resolve Missing Library&quot;(解决缺少库)对话框的屏幕快照" class="margin-around b-all" src="../../../images_www/articles/74/web/jsf-weblogic/install-libraries-dialog.png" title="&quot;Resolve Missing Server Library&quot;(解决缺少服务器库)对话框">
<p>在创建应用程序之后,当您查看 <tt>weblogic.xml</tt> 描述符文件时,您会看到 IDE 修改了该文件以指定将与应用程序一起使用的 JSF 库。</p>
<pre class="examplecode">
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/90" xmlns:j2ee="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.bea.com/ns/weblogic/90 http://www.bea.com/ns/weblogic/90/weblogic-web-app.xsd"&gt;
&lt;context-root&gt;/WebLogicCustomer&lt;/context-root&gt;
<strong>&lt;library-ref&gt;
&lt;library-name&gt;jsf&lt;/library-name&gt;
&lt;specification-version&gt;2.0&lt;/specification-version&gt;
&lt;implementation-version&gt;1.0.0.0_2-0-2&lt;/implementation-version&gt;
&lt;exact-match&gt;true&lt;/exact-match&gt;
&lt;/library-ref&gt;</strong>
&lt;/weblogic-web-app&gt;</pre>
</li>
</ul>
<!--+++++++++++++++++++++++ Creating DB Connection +++++++++++++++++++++++-->
<a name="02b"></a>
<h3>创建数据库连接</h3>
<p>本教程使用一个名为 <strong>sample</strong> 的数据库,该数据库在 MySQL 数据库服务器上运行。在本练习中,将使用 IDE 创建该数据库并填充数据库表。然后,打开到该数据库的数据库连接。IDE 将使用数据库连接详细信息为应用程序创建持久性单元。有关将 MySQL 数据库服务器与 IDE 一起使用的详细信息,请参见<a href="../ide/mysql.html">连接到 MySQL 数据库</a>教程
</p>
<p class="notes"><strong>注:</strong>或者,如果您在安装 IDE 时安装了 GlassFish Server,则可以使用到 JavaDB 数据库服务器上的样例数据库的数据库连接,该服务器在 IDE 安装期间自动注册。</p>
<p>在本练习中,将创建并打开到该数据库的连接。</p>
<ol>
<li>在 "Services"(服务)窗口中右键单击 MySQL 服务器节点,然后选择 "Connect"(连接)。</li>
<li>键入用户名和口令。单击 "OK"(确定)。</li>
<li>右键单击 MySQL 服务器节点并选择 "Create Database"(创建数据库)。</li>
<li>在 "New Database Name"(新建数据库名称)下拉列表中选择 <strong>sample</strong>。单击 "OK"(确定)。<br> <img alt="&quot;Create Database&quot;(创建数据库)对话框的屏幕快照" class="margin-around b-all" src="../../../images_www/articles/74/web/jsf-weblogic/create-db.png" title="&quot;Create Database&quot;(创建数据库)对话框">
<p class="notes"><strong>注:</strong>根据您配置数据库的方式,您可能需要明确指定新数据库的访问权限。</p>
<p>在单击 "OK"(确定)后,IDE 将创建 sample 数据库并填充数据库表。如果展开 "MySQL server"(MySQL 服务器)节点,则可以看到数据库列表现在包含新的 <tt>sample</tt> 数据库。</p>
</li>
<li>展开 "MySQL server"(MySQL 服务器)节点,右键单击 sample 数据库,然后选择 "Connect"(连接)。</li>
</ol>
<p>在单击 "Connect"(连接)后,将在 "Databases"(数据库)节点下面显示该数据库的数据库连接节点。您可以展开该节点以查看数据库表。</p>
<img alt="&quot;Services&quot;(服务)窗口中的数据库节点的屏幕快照" class="margin-around b-all" src="../../../images_www/articles/72/web/jsf-weblogic/services-window2.png" title="&quot;Services&quot;(服务)窗口中的样例数据库节点">
<p>IDE 使用数据库连接来连接到该数据库并检索数据库详细信息。IDE 还使用来自数据库连接的详细信息生成 XML 文件,WebLogic Server 使用该文件在服务器上创建数据源并识别相应的驱动程序。</p>
<p class="tips">如果未安装 MySQL 数据库,您可以使用在 JavaDB 上运行的 <tt>sample</tt> 数据库。如果 <tt>sample</tt> 数据库不存在,您可以右键单击 "MySQL"(或 "JavaDB")节点,然后选择 "Create Database"(创建数据库)。</p>
<p>有关详细信息,请参见<a href="../ide/mysql.html">连接到 MySQL 数据库</a>教程。</p>
<!--+++++++++++++++++++++++ Creating PU +++++++++++++++++++++++-->
<a name="02c"></a>
<h3>创建持久性单元</h3>
<p>要在应用程序中管理持久性,您只需创建一个持久性单元,指定要使用的数据源和实体管理器,然后让容器完成管理实体和持久性的工作。创建持久性单元时,可以在 <tt>persistence.xml</tt> 中对其进行定义。</p>
<p class="notes"><strong>注:</strong>出于演示目的,在本练习中,您将使用新建持久性单元向导创建 <tt>persistence.xml</tt> 文件。该向导将帮助您指定持久性单元的属性。您也可以在 "New Entity Class from Database"(通过数据库新建实体类)向导中创建持久性单元。如果持久性单元不存在,该向导将提供为项目创建持久性单元的选项。该向导创建一个使用 WebLogic Server 默认持久性提供器的持久性单元。</p>
<ol>
<li>右键单击 "Projects"(项目)窗口中的项目节点,然后选择 "Properties"(属性)。</li>
<li>在 "Properties"(属性)窗口的 "Sources"(源)类别中,选择 <strong>JDK 6</strong> 作为源代码/二进制格式。单击 "OK"(确定)。</li>
<li>选择 "New File"(新建文件)(Ctrl-N 组合键;在 Mac 上为 ⌘-N 组合键)以打开新建文件向导。</li>
<li>从 "Persistence"(持久性)类别中选择 "Persistence Unit"(持久性单元)。单击 "Next"(下一步)。</li>
<li>保留该向导建议的默认持久性单元名称。</li>
<li>在 "Persistence Provider"(持久性提供器)下拉列表中选择 <strong>EclipseLink</strong></li>
<li>在 "Data Source"(数据源)下拉列表中选择 "New Data Source"(新建数据源)。</li>
<li>在 "New Data Source"(新建数据源)对话框中,键入 <strong>jdbc/mysql-sample</strong> 作为 JNDI 名称。</li>
<li>选择 MySQL sample 数据库连接。单击 "OK"(确定)关闭该对话框。</li>
<li>在新建持久性单元向导中单击 "Finish"(完成)。</li>
</ol>
<img alt="新建持久性单元向导的屏幕快照" class="margin-around b-all" src="../../../images_www/articles/74/web/jsf-weblogic/new-persistence-eclipselink1.png" title="新建持久性单元向导">
<p>单击 "Finish"(完成),此时将为项目创建 <tt>persistence.xml</tt> 并在编辑器中打开该文件。可以在编辑器的工具栏中单击 "Source"(源),以便在 XML 源代码编辑器中打开 <tt>persistence.xml</tt>。此文件包含了服务器管理应用程序的实体和持久性所需的所有信息。</p>
<p class="notes"><strong>注:</strong>如果您未使用现有数据源,则 IDE 将在 "Server Resources"(服务器资源)节点下生成一个 XML 文件(例如 <tt>datasource-1-jdbc.xml</tt>),此文件包含用于在服务器上创建数据源的详细信息,并包括数据库的 JDBC 驱动程序。</p>
<p>
如果在 XML 源代码编辑器中打开 <tt>persistence.xml</tt>,则可以看到 IDE 将持久性版本指定为 2.0 并将方案指定为 <tt>persistence_2_0.xsd</tt>。IDE 在 <tt>persistence.xml</tt> 中将 <tt>org.eclipse.persistence.jpa.PersistenceProvider</tt> 指定为持久性提供器。EclipseLink 是 Oracle TopLink 的主持久性实现以及 JPA 的引用实现。
</p>
<pre class="examplecode">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;persistence <strong>version="2.0"</strong> xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/<strong>persistence_2_0.xsd</strong>"&gt;
&lt;persistence-unit name="WebLogicCustomerPU" transaction-type="JTA"&gt;
&lt;provider&gt;org.eclipse.persistence.jpa.PersistenceProvider&lt;/provider&gt;
&lt;jta-data-source&gt;jdbc/mysql-sample&lt;/jta-data-source&gt;
&lt;exclude-unlisted-classes&gt;false&lt;/exclude-unlisted-classes&gt;
&lt;properties&gt;
&lt;property name="eclipselink.ddl-generation" value="create-tables"/&gt;
&lt;/properties&gt;
&lt;/persistence-unit&gt;
&lt;/persistence&gt;</pre>
<p>您还可以在向导中选择 TopLink,此时,向导会在 <tt>persistence.xml</tt> 中将 <tt>oracle.toplink.essentials.PersistenceProvider</tt> 指定为持久性提供器。IDE 将在类路径中添加 Oracle TopLink Essentials - 2.0.1 库。在当前和将来版本的 Oracle TopLink 中,Oracle TopLink Essentials 将替换为 EclipseLink。应尽可能选用 Oracle TopLink/EclipseLink 而不是 Oracle TopLink Essentials。</p>
<!--+++++++++++++++++++++++ Creating Entity Classes +++++++++++++++++++++++-->
<a name="02d"></a>
<h3>创建实体类</h3>
<p>现在,将使用 "Entity Classes from Database”(通过数据库生成实体类)向导基于关系数据库创建实体类。</p>
<ol>
<li>选择 "New File"(新建文件)(Ctrl-N 组合键)以打开新建文件向导。 </li>
<li>从 "Persistence"(持久性)类别中选择 "Entity Classes from Database"(通过数据库生成实体类)。单击 "Next"(下一步)。</li>
<li>在 "Entity Classes from Database"(通过数据库生成实体类)向导中,从 "Data Source"(数据源)下拉列表中选择 <strong>jdbc/mysql-sample</strong>,然后根据需要提供口令。</li>
<li>从 "Available Tables"(可用表)列表中选择 <strong>Customer</strong> 表,然后单击 "Add"(添加)。单击 "Next"(下一步)。
<p>该向导将在 "Selected Tables"(选定的表)下面列出 <tt>customer</tt> 表和相关的表。</p></li>
<li>键入 <strong>ejb</strong> 作为生成的类的包。单击 "Finish"(完成)。</li>
</ol>
<p>单击 "Finish"(完成),此时 IDE 将为每个选定的表生成实体类。您可以展开 <tt>ejb</tt> 源包节点以查看生成的实体类。</p>
<!--+++++++++++++++++++++++ Creating JSF Pages+++++++++++++++++++++++-->
<a name="02e"></a>
<h3>生成 JSF 页</h3>
<p>
在本练习中,将使用向导基于现有实体类生成 JSF 页。</p>
<ol>
<li>右键单击项目节点,然后选择 "New"(新建)> "Other"(其他)。</li>
<li>从新建文件向导的 "JavaServer Faces" 类别中,选择 "JSF Pages from Entity Classes"(通过实体类创建 JSF 页)。单击 "Next"(下一步)。</li>
<li>单击 "Add All"(全部添加),为所有可用的实体创建 JSF 页。单击 "Next"(下一步)。</li>
<li>为会话 Bean 和 JPA 控制器类的包键入 <strong>web</strong>。单击 "Finish"(完成)。</li>
</ol>
<p>单击 "Finish"(完成),此时 IDE 将生成 JSF 2.0 页以及 JSF 页的控制器和转换器类。IDE 将在默认 Web 页目录中为每个实体类生成一组 JSF 页。IDE 还将为每个实体生成一个访问该实体对应的会话 facade 类的受管 Bean 类。</p>
<!--+++++++++++++++++++++++ Running Project +++++++++++++++++++++++-->
<a name="02f"></a>
<h3>运行项目</h3>
<p>在本练习中,将构建 Web 应用程序并将其部署到 WebLogic Server。将使用 IDE 中的 "Run"(运行)命令来构建、部署和启动应用程序。</p>
<ol>
<li>右键单击项目节点,然后选择 "Run"(运行)。</li>
</ol>
<p>在单击 "Run"(运行)后,IDE 将构建项目并将 WAR 档案文件部署到 WebLogic Server,然后创建并注册新的 JDBC 数据源。将在浏览器中打开应用程序的欢迎页 (<a href="http://localhost:7001/WebLogicCustomer/">http://localhost:7001/WebLogicCustomer/</a>)。</p>
<img alt="浏览器中欢迎页的 &quot;Summary&quot;(概要)中表的屏幕快照" class="margin-around b-all" src="../../../images_www/articles/72/web/jsf-weblogic/browser-welcome.png" title="浏览器中的欢迎页">
<p>如果登录到管理控制台,您可以在 "Your Deployed Resources"(您部署的资源)部分中单击 "Deployments"(部署)以查看包含当前部署到服务器的资源的表。</p>
<img alt="WebLogic Server 管理控制台中的 &quot;Deployments&quot;(部署)表的屏幕快照" class="margin-around b-all" src="../../../images_www/articles/72/web/jsf-weblogic/adminconsole-deployments.png" title="WebLogic Server 管理控制台中的 &quot;Deployments&quot;(部署)表">
<p>可以单击每个资源的名称以查看该资源的其他详细信息。您还可以删除 "Deployments"(部署)表中的资源。</p>
<p class="notes"><strong>部署到 WebLogic Server 10.3.4 或 10.3.5 的相关说明。</strong></p>
<ul>
<li>如果将应用程序部署到了 WebLogic Server 10.3.4 或 10.3.5,您会在表中看到,除了 <tt>WebLogicCustomer.war</tt> Web 应用程序和 <tt>jdbc/mysql-sample</tt> JDBC 配置,JSF 2.0 库也部署到了服务器。<br> <img alt="WebLogic Server 管理控制台中的 &quot;Deployments&quot;(部署)表的屏幕快照" class="margin-around b-all" src="../../../images_www/articles/74/web/jsf-weblogic/admin-console-deployments.png" title="WebLogic Server 管理控制台中的 &quot;Deployments&quot;(部署)表">
</li>
<li>如果在 "Services"(服务)窗口中展开 Oracle WebLogic Server 实例,则可以查看部署到服务器的应用程序和资源。您可以看到在服务器上创建了 JDBC 资源并安装了 JSF 库。<br> <img alt="&quot;Services&quot;(服务)窗口中的 WebLogic Server 应用程序和资源的屏幕快照" class="margin-around b-all" src="../../../images_www/articles/74/web/jsf-weblogic/weblogic-services-window2.png" title="&quot;Services&quot;(服务)窗口中的 WebLogic Server 应用程序和资源">
</li>
</ul>
<p class="tips">有关部署应用程序的详细信息,请参见<a href="http://download.oracle.com/docs/cd/E12840_01/wls/docs103/deployment/index.html">将应用程序部署到 WebLogic Server</a>
</p>
</div>
<div class="feedback-box"><a href="/about/contact_form.html?to=3&amp;subject=Feedback:%20Developing%20an%20Enterprise%20Application%20on%20Oracle%20WebLogic">发送有关此教程的反馈意见</a></div>
<br style="clear:both;">
<h2>另请参见</h2>
<p>有关使用 NetBeans IDE 开发使用 Java 持久性和 JavaServer Faces 的 Web 应用程序的更多信息,请参见以下参考资料:</p>
<ul>
<li><a href="../javaee/weblogic-javaee-m1-screencast.html">将 Web 应用程序部署到 Oracle WebLogic Server 的视频</a></li>
<li><a href="jsf20-intro.html">JavaServer Faces 2.0 简介</a></li>
<li><a href="../../docs/javaee/ecommerce/intro.html">NetBeans 电子商务教程</a></li>
<li><a href="../../trails/java-ee.html">Java EE 和 Java Web 学习资源</a></li>
</ul>
</body>
</html>