这是不久前的事了,但我会继续回答我自己的问题。
Oracle Metalink(需要登录)上有一个指南,它解释了如何在 JBoss 上部署 ADF/BC。我很确定这就是为我解决这个问题的原因(这是不久前......)
这是它的副本:
摘要
本说明的目的是展示如何创建 ADF BC 应用程序模块以及如何在 JBoss 应用程序服务器上部署它。它还将向您展示您需要在 JBoss 端执行哪些配置才能使应用程序模块正常工作。
范围和应用
本说明适用于即将将 ADF BC 模块部署到 JBoss 应用程序服务器的任何人。
如何将 ADF BC 模块部署到 JBoss 应用服务器
将 ADF BC 模块部署到 JBoss 应用服务器所需的步骤如下:
- 在 JBoss 服务器上设置 ADF 运行时库
- 在 JBoss 服务器上设置数据源
- 配置 ADF BC 模块
- 部署 ADF BC 模块
我将更详细地介绍这些步骤。这里还附有一个完整的示例供下载。
在 JBoss 服务器上设置 ADF 运行时库
- 关闭应用服务器。
- 调用 ADF 运行时安装程序向导。选择工具 | ADF 运行时安装程序,然后从子菜单中选择一种服务器类型。
- 继续浏览向导的页面。有关向导任何页面的详细说明,请单击帮助。
- 在“位置”页面上,选择要安装库的服务器的主(或根)目录。
- 在“安装选项”页面上,您可以选择要执行的操作。
* 从您的 JDeveloper 安装中安装 ADF 运行时库。
* 卸载以前安装的 ADF 运行时库。
* 将 ADF 运行时库的存档版本恢复为活动版本。
- 如果您希望准备任何现有 UIX JSP 项目以进行部署,请在“摘要”页面上单击“迁移”。
- 在“摘要”页面上,确认安装详细信息,然后单击“完成”。
- 重启应用服务器。
在 JBoss 服务器上设置数据源
要在 JBoss 服务器中创建 Oracle 数据源,需要执行以下步骤:
-
创建一个名为 oracle-ds.xml 的文件。此文件将包含您的数据源配置。下面是一个示例,说明此类文件的外观。
<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<local-tx-datasource>
<jndi-name>OracleDS</jndi-name>
<use-java-context>false</use-java-context>
<connection-url>jdbc:oracle:thin:@mydbhost.com:1521:mysid</connection-url>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<user-name>hr</user-name>
<password>******</password>
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
</local-tx-datasource>
</datasources>
将文件复制到 /deploy。这会将它安装在 JBoss 服务器上。
配置 ADF BC 模块
为了在 JBoss 服务器上运行,需要对 ADF BC 模块执行一些步骤。
在创建将在 JBoss 应用服务器上使用的 ADF BC 模块时,需要将 SQL Flavor 设置为 SQL92,将 Type Map 设置为 Java。使用 JBoss 作为应用服务器时需要进行此更改。
****将 ADF 业务组件项目打包为 EJB 会话 bean。****
- 右键单击应用程序模块,选择业务组件部署。
- 在配置文件对话框中,选择 EJB Session Beans。
- 在 EJB Session Beans 对话框中,选择 Deploy To: Other EJB Container
- 在 AppModules 对话框中,配置应用程序模块,如下图 1 所示。
图 1. 应用模块的配置
完成后,您的项目将类似于下图 2 中所示的项目。
图 2. JDeveloper 项目
最后一步是配置应用程序模块以使用我们在上一步中创建的数据源。这样做如下:
- 编辑应用程序模块。
- 在导航器中,右键单击业务组件应用程序模块图标并选择配置。
- 选择适当的配置。
- 选择此配置并单击编辑。
- 在“连接类型”列表中,选择 JDBC 数据源。
- 输入数据源名称。例如:java:/OracleDS。
部署 ADF BC 模块
如果您的 JBoss 服务器在本地或映射在本地机器上,则可以直接从 JDeveloper 内部部署它。如果您的 JBoss 服务器是远程的,并且没有映射到本地机器,或者您有一个稍后将使用此模块的 JSP 应用程序,您不能直接从 JDeveloper 中部署它。下面介绍这两种方法。
从 JDeveloper 中部署模块
1. 创建到目标应用服务器的连接。
2. 如果要支持 EJB 的 JBoss 特定配置选项,请添加 jboss.xml 部署描述符文件。有关此文件的更多信息,请参阅http://www.jboss.org。
3. 如果您的项目是 Business Components UIX JSP 项目,请向其添加所需的 Cabo 资源。
4. 在导航器中选择部署配置文件,右键单击,选择部署到 | 将应用程序打包为存档文件并通过选定的应用程序服务器连接进行部署。
在 JDeveloper 之外部署模块
如果您的 JBoss 服务器是远程的,并且没有映射到本地机器,或者您有一个稍后将使用此模块的 JSP 应用程序,您必须执行以下操作:
- 从上下文菜单中选择“部署到 EAR 文件”以将其部署为 EAR 文件。您必须将此应用程序部署到 EAR 文件而不是 WAR 文件,因为 JBoss 不会在 java:comp/env/ JNDI 命名空间下为 WAR 文件添加 EJB 引用。
- 将此文件手动复制到 /deploy 目录。