corner imagecorner image
IDEPlatformPluginsDocs & SupportCommunityPartners

为 Oracle WebLogic Server 开发企业应用程序

本教程介绍如何使用 IDE 创建使用 JavaServer Faces (JSF) 和 Java 持久性 API (Java Persistence API, JPA) 的 Web 应用程序,然后将应用程序部署到 Oracle WebLogic Server。在本教程中,将在 IDE 中注册 WebLogic Server,然后配置域以支持将 JPA 2.0 和 JSF 2.0 用作视图框架。

目录

本页上的内容适用于 NetBeans IDE 7.0 和 7.1

要学习本教程,您需要具备以下软件和资源。

软件或资源 要求的版本
NetBeans IDE 7.0、7.1、Java EE
Java Development Kit (JDK) 版本 6
Oracle WebLogic Server 11g Rel 1(10.3.4、10.3.5)、12c (12.1.1.0)
样例数据库 MySQL 或 JavaDB

注意:

  • 该项目使用适用于 MySQL 或 JavaDB 数据库服务器的 sample 数据库。有关在 IDE 中使用 MySQL 数据库服务器和创建数据库连接的详细信息,请参见连接到 MySQL 数据库教程。或者,如果在 IDE 安装期间安装了 GlassFish Server,则也可以使用在 IDE 中缺省创建和注册的 JavaDB sample 数据库的数据库连接。

注册 Oracle WebLogic Server

在本教程中,您将向 Oracle WebLogic Server 中部署一个 Web 应用程序。要从 IDE 中将应用程序部署到 WebLogic Server,您需要在 IDE 中注册一个服务器实例。本部分介绍如何使用 IDE 中的 "Add Server Instance"(添加服务器实例)向导注册 WebLogic Server 实例。

下载并安装服务器

在注册服务器之前,您需要下载 WebLogic Server 安装程序,然后按照 Oracle WebLogic Server 安装指南中介绍的步骤在本地计算机上安装服务器。除了安装服务器以外,您还需要创建一个 WebLogic 域,然后才能在 IDE 中注册服务器。

  1. Oracle WebLogic Server 下载页下载安装程序。
  2. 按照 Oracle WebLogic Server 安装指南中的步骤安装服务器。

    请务必记下用户名和口令。

  3. 创建一个 WebLogic 域。

    您可以使用 WebLogic 配置向导的图形模式来帮助创建域。

有关安装和设置服务器的详细信息,您可能需要查阅《WebLogic Server 安装指南》的以下部分。

在 IDE 中注册服务器

在安装服务器后,可以在 "Add Server Instance"(添加服务器实例)向导中指定服务器域以注册一个服务器实例。

  1. 打开 "Services"(服务)窗口。
  2. 右键单击 "Servers"(服务器)节点,然后选择 "Add Server"(添加服务器)。
  3. 选择 "Oracle WebLogic Server"。单击 "Next"(下一步)。
  4. 单击 "Browse"(浏览)并找到包含服务器安装的目录。单击 "Next"(下一步)。

    IDE 将自动识别服务器实例的域。

  5. 键入该域的用户名和口令。
  6. 启用 JPA 2.0(如果未启用)。单击 "Finish"(完成)。

    注意:如果注册 WebLogic Server 12c (12.1.1.0) 的实例,则缺省情况下会启用 JPA 2.0。如果注册 WebLogic Server 11g Rel 1(10.3.4 或 10.3.5)的实例,则可在注册服务器时或在注册服务器后在服务器管理器中启用 JPA 2.0。有关更多详细信息,请参见下面的启用 JPA 2.0 支持部分。

"Add Server"(添加服务器)向导

在单击 "Finish"(完成)后,将在 "Services"(服务)窗口的 "Servers"(服务器)节点下面显示 Oracle WebLogic Server。

您可以右键单击 Oracle WebLogic Server 节点以执行各种操作,其中包括:

  • 启动和停止服务器
  • 在浏览器中打开管理控制台
  • 在 IDE 的 "Output"(输出)窗口中查看服务器日志
"Services"(服务)窗口的屏幕快照

打开管理控制台

在本练习中,将在浏览器中打开 WebLogic Server 管理控制台。通过使用管理控制台,您可以配置服务器设置以及查看部署的应用程序和可用资源。

  1. 使用以下方法启动服务器:在 "Services"(服务)窗口中右键单击 "Oracle WebLogic Server" 节点,然后选择 "Start"(启动)。

    在启动服务器时,您可以在 "Output"(输出)窗口的 "Oracle WebLogic Server" 标签中查看服务器日志。

    如果未显示该标签,您可以右键单击 "Oracle WebLogic Server" 节点,然后选择 "View Server Log"(查看服务器日志)。

  2. 右键单击 "Oracle WebLogic Server" 节点,然后选择 "View Admin Console"(查看管理控制台)。

    在选择 "View Admin Console"(查看管理控制台)时,将在浏览器中打开服务器的登录屏幕。

  3. 使用在安装服务器时指定的用户名和口令进行登录。

在登录后,将在浏览器中看到管理控制台主页。

Oracle WebLogic Server 管理控制台屏幕快照

启用 JPA 2.0 支持

如果使用 Oracle WebLogic Server 11g (10.3.4, 10.3.5),则需启用对 Java 持久性 API (Java Persistence 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 所需的文件。可在注册服务器实例时为 WebLogic Server 启用 JPA 2.0,或在 IDE 的服务器管理器中启用。也可以执行 WebLogic Server 文档中有关在 WebLogic Server 中将 JPA 2.0 与 TopLink 一起使用的步骤。

WebLogic Server 支持 Java 持久性 API (Java Persistence API, JPA),并与 Oracle TopLink 和 Kodo 持久性库捆绑在一起。在本练习中,将在 WebLogic Server 管理控制台中将缺省持久性提供器从 Kodo 更改为 Oracle Toplink。

注意:缺省情况下,在安装 WebLogic Server 12c 时会启用 TopLink 和 JPA 2.0 支持。

要在服务器管理器中启用 JPA 2.0 支持并设置缺省的持久性提供器,请执行以下步骤。

  1. 在 "Services"(服务)窗口中,右键单击 "Oracle WebLogic Server" 节点,然后选择 "Properties"(属性)以打开服务器管理器。

    也可以从主菜单中选择 "Tools"(工具)> "Servers"(服务器),以打开服务器管理器。

    服务器管理器中的 "Domain"(域)标签屏幕快照

    在服务器管理器的 "Domain"(域)标签中,您可以查看和修改用户名和口令。

  2. 单击 "Enable JPA 2"(启用 JPA 2)。单击 "Close"(关闭)。

    添加 "Enable JPA 2"(启用 JPA 2)时,IDE 将修改 WebLogic Server 类路径来添加文件,从而启用 JPA 2 支持。

    注意:您还可以使用 Oracle Smart Update 来启用 JPA 2.0,或者手动修改 WebLogic 类路径来启用。有关启用 JPA 2.0 支持的更多详细信息,请参见以下链接。

  3. 在浏览器中打开 Oracle WebLogic Server 管理控制台并登录。
  4. 在管理控制台的 "Domain Configurations"(域配置)部分下面,单击 Domain(域)。
  5. 在 "Configuration"(配置)标签下单击 JPA 标签。
  6. 在 "Default JPA Provider"(缺省 JPA 提供器)下拉列表中选择 TopLink。单击 "Save"(保存)。
Oracle WebLogic Server 管理控制台中的 "JPA" 标签的屏幕快照

如果应用程序未明确指定持久性提供器,则单击 "Save"(保存)后,Oracle TopLink 将成为部署到服务器的应用程序的缺省持久性提供器。

注意:本教程中的应用程序使用 Java 事务 API (Java Transaction API, JTA) 来管理事务。在安装 WebLogic 时,将缺省启用 JTA。您可以在域的 "Configuration"(配置)标签上的 "JTA" 标签中修改 JTA 设置。

创建 Web 应用程序

在本教程中,将创建一个 Java EE 5 Web 应用程序。该 Web 应用程序包含基于 sample 数据库中的表的实体类。在创建数据库连接后,将创建一个持久性单元,并使用 IDE 中的向导通过数据库生成实体类。然后,使用向导基于实体类创建 JSF 页。

创建项目

在本练习中,将使用 "New Project"(新建项目)向导创建一个 Web 应用程序,并将 Oracle WebLogic Server 指定为目标服务器。

  1. 选择 "File"(文件)> "New Project"(新建项目)(Ctrl-Shift-N 组合键;在 Mac 上为 &#8984-Shift-N 组合键)。
  2. 从 "Java Web" 类别中选择 "Web Application"(Web 应用程序)。单击 "Next"(下一步)。
  3. 键入 WebLogicCustomer 作为项目名称,并指定项目位置。
  4. 取消选中 "Use Dedicated Folder for Storing Libraries"(使用专用文件夹存储库)选项(如果该选项处于选中状态)。单击 "Next"(下一步)。
  5. 从 "Server"(服务器)下拉列表中选择 Oracle WebLogic Server
  6. 选择 Java EE 5 作为 Java EE 版本。单击 "Next"(下一步)。
    "New Project"(新建项目)向导的屏幕快照
  7. 选择 "JavaServer Faces" 框架。
  8. 从 "Server Library"(服务器库)下拉列表中选择 "JSF 2.0"。单击 "Finish"(完成)。
    "New Project"(新建项目)向导的 "Frameworks"(框架)面板屏幕快照

    Oracle WebLogic Server 包含在应用程序中使用 JSF 1.2 和 JSF 2.0 所需的库,但在缺省情况下会取消激活这些库。您需要部署并安装这些库,然后才能开始使用这些库。如果尚未安装该库,IDE 将提示您安装;如果在 "New Project"(新建项目)向导中选择了该库,则 IDE 可以安装该库。

    "Resolve Missing Library"(解决缺少库)对话框屏幕快照

    注意:该库只需安装一次。

    单击 "Finish"(完成)后,IDE 将创建 Web 应用程序项目并在编辑器中打开 index.xhtml。IDE 可修改 web.xml,将 faces/index.xhtml 指定为缺省索引页。

  9. 在 "Projects"(项目)窗口中展开 "Configuration Files"(配置文件)节点,然后双击 weblogic.xml 描述符文件在编辑器中打开该文件。
    "Projects"(项目)窗口中的 weblogic.xml 屏幕快照

    在编辑器中打开 weblogic.xml 描述符文件时,该文件类似如下。

    <?xml version="1.0" encoding="UTF-8"?>
    <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">
      <jsp-descriptor>
        <keepgenerated>true</keepgenerated>
        <debug>true</debug>
      </jsp-descriptor>
      <context-root>/WebLogicCustomer</context-root>
      <fast-swap>
        <enabled>true</enabled>
      </fast-swap>
    </weblogic-web-app>

    注意:如果目标服务器是 WebLogic Server 11g,则在查看 weblogic.xml 描述符文件时,可以看到 IDE 修改了该文件以指定将用于应用程序的 JSF 库。您可以看到 weblogic.xml 中的库引用对应于在 "New Project"(新建项目)向导的 "Frameworks"(框架)窗格中激活的 JSF 2.0 JAR 版本。

    <?xml version="1.0" encoding="UTF-8"?>
    <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">
      <context-root>/WebLogicCustomer</context-root>
      <library-ref>
          <library-name>jsf</library-name>
          <specification-version>2.0</specification-version>
          <implementation-version>1.0.0.0_2-0-2</implementation-version>
          <exact-match>true</exact-match>
      </library-ref>
      <fast-swap>
        <enabled>true</enabled>
      </fast-swap>
    </weblogic-web-app>
  10. weblogic.xml 中的 <fast-swap> 元素进行以下更改,将其值更改为 false。保存所做的更改。
        <fast-swap>
            <enabled>false</enabled>
        </fast-swap>
    </weblogic-web-app>

创建数据库连接

本教程使用一个名为 sample 的数据库,该数据库在 MySQL 数据库服务器上运行。在本练习中,将使用 IDE 创建该数据库并填充数据库表。然后,打开到该数据库的数据库连接。IDE 将使用数据库连接详细信息为应用程序创建持久性单元。有关将 MySQL 数据库服务器与 IDE 一起使用的详细信息,请参见连接到 MySQL 数据库教程

注意:此外,如果在安装 IDE 时安装了 GlassFish Server,您也可以使用在 IDE 安装期间自动注册的 JavaDB 数据库服务器上的 sample 数据库的数据库连接。

在本练习中,将创建并打开到该数据库的连接。

  1. 在 "Service"(服务)窗口中右键单击 MySQL 服务器节点,然后选择 "Connect"(连接)。
  2. 键入用户名和口令。单击 "OK"(确定)。
  3. 右键单击 MySQL 服务器节点并选择 "Create Database"(创建数据库)。
  4. 在 "New Database Name"(新建数据库名称)下拉列表中选择 sample。单击 "OK"(确定)。
    "Create Database"(创建数据库)对话框屏幕快照

    注意:根据数据库的配置方式,您可能需要明确指定新数据库的访问权限。

    在单击 "OK"(确定)后,IDE 将创建 sample 数据库并填充数据库表。如果展开 "MySQL server"(MySQL 服务器)节点,则可以看到数据库列表现在包含新的 sample 数据库。

  5. 展开 "MySQL server"(MySQL 服务器)节点,右键单击 sample 数据库,然后选择 "Connect"(连接)。

在单击 "Connect"(连接)后,将在 "Databases"(数据库)节点下面显示该数据库的数据库连接节点。您可以展开该节点以查看数据库表。

"Services"(服务)窗口中数据库节点的屏幕快照

IDE 使用数据库连接来连接到该数据库并检索数据库详细信息。IDE 还使用来自数据库连接的详细信息生成 XML 文件,WebLogic Server 使用该文件在服务器上创建数据源并识别相应的驱动程序。

如果未安装 MySQL 数据库,您可以使用在 JavaDB 上运行的 sample 数据库。如果 sample 数据库不存在,您可以右键单击 "MySQL"(或 "JavaDB")节点,然后选择 "Create Database"(创建数据库)。

有关详细信息,请参见连接到 MySQL 数据库教程。

创建持久性单元

要在应用程序中管理持久性,您只需创建一个持久性单元,指定要使用的数据源和实体管理器,然后让容器完成管理实体和持久性的工作。创建持久性单元时,可以在 persistence.xml 中对其进行定义。

注意:出于演示的目的,本练习使用 "New Persistence Unit"(新建持久性单元)向导创建 persistence.xml 文件。该向导将帮助您指定持久性单元的属性。也可以在 "New Entity Class from Database"(新建 - 通过数据库生成实体类)向导中创建持久性单元。如果持久性单元不存在,该向导将提供为项目创建持久性单元的选项。该向导创建一个使用 WebLogic Server 缺省持久性提供器的持久性单元。

  1. 右键单击 "Projects"(项目)窗口中的项目节点,然后选择 "Properties"(属性)。
  2. 在 "Properties"(属性)窗口的 "Sources"(源)类别中,选择 JDK 6 作为源代码/二进制格式。单击 "OK"(确定)。
  3. 选择 "New File"(新建文件)(Ctrl-N 组合键;在 Mac 上为 &#8984-N 组合键)以打开 "New File"(新建文件)向导。
  4. 从 "Persistence"(持久性)类别中选择 "Persistence Unit"(持久性单元)。单击 "Next"(下一步)。
  5. 保留该向导建议的缺省持久性单元名称。
  6. 在 "Persistence Provider"(持久性提供器)下拉列表中选择 EclipseLink
  7. 在 "Data Source"(数据源)下拉列表中选择 "New Data Source"(新建数据源)。
  8. 在 "New Data Source"(新建数据源)对话框中,键入 jdbc/mysql-sample 作为 JNDI 名称。
  9. 选择 MySQL sample 数据库连接。单击 "OK"(确定)关闭该对话框。
  10. 在 "New Persistence Unit"(新建持久性单元)向导中单击 "Finish"(完成)。
"New Persistence Unit"(新建持久性单元)向导的屏幕快照

在单击 "Finish"(完成)后,将为项目创建 persistence.xml 并在编辑器中打开该文件。可以单击编辑器工具栏中的 "XML" 以查看 persistence.xml 的 XML 视图。此文件包含了服务器管理应用程序的实体和持久性所需的所有信息。

注意:如果未使用现有的数据源,IDE 将在 "Server Resources"(服务器资源)节点下面生成一个 XML 文件(如 datasource-1-jdbc.xml),该文件包含用于在服务器上创建数据源的详细信息,其中包括数据库的 JDBC 驱动程序。

如果在 XML 编辑器中打开 persistence.xml,则可以看到 IDE 将持久性版本指定为 2.0 并将架构指定为 persistence_2_0.xsd。IDE 在 persistence.xml 中将 org.eclipse.persistence.jpa.PersistenceProvider 指定为持久性提供器。EclipseLink 是 Oracle TopLink 的主持久性实现以及 JPA 的引用实现。

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" 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/persistence_2_0.xsd">
  <persistence-unit name="WebLogicCustomerPU" transaction-type="JTA">
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
    <jta-data-source>jdbc/mysql-sample</jta-data-source>
    <exclude-unlisted-classes>false</exclude-unlisted-classes>
    <properties>
      <property name="eclipselink.ddl-generation" value="create-tables"/>
    </properties>
  </persistence-unit>
</persistence>

您还可以在向导中选择 TopLink,此时,向导会在 persistence.xml 中将 oracle.toplink.essentials.PersistenceProvider 指定为持久性提供器。IDE 将在类路径中添加 Oracle TopLink Essentials - 2.0.1 库。在当前和将来版本的 Oracle TopLink 中,Oracle TopLink Essentials 将替换为 EclipseLink。应尽可能选用 Oracle TopLink/EclipseLink 而不是 Oracle TopLink Essentials。

创建实体类

现在,将使用 "Entity Classes from Database”(通过数据库生成实体类)向导基于关系数据库创建实体类。

  1. 选择 "New File"(新建文件)(Ctrl-N) 以打开 "New File"(新建文件)向导。
  2. 从 "Persistence"(持久性)类别中选择 "Entity Classes from Database"(通过数据库生成实体类)。单击 "Next"(下一步)。
  3. 在 "Entity Classes from Database"(通过数据库生成实体类)向导中,从 "Data Source"(数据源)下拉列表中选择 jdbc/mysql-sample,然后根据需要提供口令。
  4. 从 "Available Tables"(可用表)列表中选择 Customer 表,然后单击 "Add"(添加)。单击 "Next"(下一步)。

    该向导将在 "Selected Tables"(选定的表)下面列出 customer 表和相关的表。

  5. 键入 ejb 作为生成的类的包。单击 "Finish"(完成)。

在单击 "Finish"(完成)后,IDE 将为每个选定的表生成实体类。您可以展开 ejb 源包节点以查看生成的实体类。

生成 JSF 页

在本练习中,将使用向导基于现有实体类生成 JSF 页。

  1. 右键单击项目节点,然后选择 "New"(新建)> "Other"(其他)。
  2. 从 "New File"(新建文件)向导的 "JavaServer Faces" 类别中,选择 "JSF Pages from Entity Classes"(通过实体类创建 JSF 页)。单击 "Next"(下一步)。
  3. 单击 "Add All"(全部添加),为所有可用的实体创建 JSF 页。单击 "Next"(下一步)。
  4. 在 "JPA Controller Package"(JPA 控制器包)和 "JSF Classes Package"(JSF 类包)字段中,键入 web。单击 "Finish"(完成)。

在单击 "Finish"(完成)后,IDE 将生成 JSF 2.0 页以及 JSF 页的控制器和转换器类。

运行项目

在本练习中,将生成 Web 应用程序并将其部署到 WebLogic Server。将使用 IDE 中的 "Run"(运行)命令来生成、部署和启动应用程序。

  1. 右键单击项目节点,然后选择 "Run"(运行)。

在单击 "Run"(运行)后,IDE 将生成项目并将 WAR 归档文件部署到 WebLogic Server,然后创建并注册新的 JDBC 数据源。将在浏览器中打开应用程序的欢迎页 (http://localhost:7001/WebLogicCustomer/)。

浏览器中的欢迎页摘要表屏幕快照

如果登录到管理控制台,您可以在 "Your Deployed Resources"(您部署的资源)部分中单击 "Deployments"(部署)以查看包含当前部署到服务器的资源的表。

WebLogic Server 管理控制台中的 "Deployments"(部署)表屏幕快照

您可以看到该表除了列出 JSF 2.0 库以外,现在还列出了 WebLogicCustomer.war Web 应用程序和 jdbc/mysql-sample JDBC 配置。可以单击每个资源的名称以查看该资源的其他详细信息。您还可以删除 "Deployments"(部署)表中的资源。

如果在 "Services"(服务)窗口中展开 Oracle WebLogic Server 实例,则可以查看部署到服务器的应用程序和资源。

"Services"(服务)窗口中的 WebLogic Server 应用程序和资源的快照

您可以看到在服务器上创建了 JDBC 资源并安装了 JSF 库。

有关部署应用程序的详细信息,请参见将应用程序部署到 WebLogic Server


另请参见

有关使用 NetBeans IDE 开发使用 Java 持久性和 JavaServer Faces 的 Web 应用程序的更多信息,请参见以下参考资料: