3

我正在尝试在 JBoss 服务器上使用 Oracle ADF 业务组件运行应用程序。我已经设法部署它,但是当我尝试加载页面时,出现以下异常:

 java.lang.ClassCastException: org.jboss.resource.adapter.jdbc.jdk6.WrappedConnectionJDK6 cannot be cast to oracle.jdbc.OracleConnection

有没有办法解决这个问题?也许将 JBoss 配置为不使用此包装的连接或配置 ADF 框架来解包它?

4

1 回答 1

3

这是一段时间前的事了,但我会跟进我自己的问题。

Oracle Metalink (Needs login)上有一个指南,它解释了如何在 JBoss 上部署 ADF/BC。我很确定这就是为我解决这个问题的原因(这是不久前的......)

这是它的副本:


摘要
本说明的目的是展示如何创建 ADF BC 应用程序模块以及如何在 JBoss 应用程序服务器上部署它。它还将向您展示您需要在 JBoss 端执行哪些配置才能使应用程序模块正常工作。

范围和应用
本说明适用于即将将 ADF BC 模块部署到 JBoss 应用服务器的任何人。

如何将 ADF BC 模块部署到 JBoss 应用程序服务器
将 ADF BC 模块部署到 JBoss 应用程序服务器所需的步骤如下:

  1. 在 JBoss 服务器上设置 ADF 运行时库
  2. 在 JBoss 服务器上设置数据源
  3. 配置 ADF BC 模块
  4. 部署 ADF BC 模块

我将更详细地介绍这些步骤中的每一个。这里还附有一​​个完整的示例供下载。在 JBoss 服务器上设置 ADF 运行时库

  1. 关闭应用程序服务器。
  2. 调用 ADF 运行时安装程序向导。选择工具 | ADF 运行时安装程序,然后从子菜单中选择服务器类型。
  3. 继续浏览向导的页面。有关向导任何页面的详细说明,请单击帮助。
  4. 在“位置”页面上,选择要安装库的服务器的主(或根)目录。
  5. 在安装选项页面上,您可以选择您希望执行的操作。* 从您的 JDeveloper 安装中安装 ADF 运行时库。* 卸载以前安装的 ADF 运行时库。* 将 ADF 运行时库的存档版本恢复为活动版本。
  6. 如果您希望准备任何现有的 UIX JSP 项目以进行部署,请在 Summary 页面上单击 Migrate。
  7. 在 Summary 页面上,确认安装的详细信息,然后单击 Finish。
  8. 重新启动应用程序服务器。

在 JBoss 服务器上设置数据源
要在 JBoss 服务器中创建 Oracle 数据源,您需要执行以下步骤:

  1. 创建一个名为 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>
    
  2. 将文件复制到 /deploy。这会将它安装在 JBoss 服务器上。

配置 ADF BC 模块
需要在 ADF BC 模块上执行几个步骤才能使其在 JBoss 服务器上运行。

创建将在 JBoss 应用服务器上使用的 ADF BC 模块时,需要将 SQL Flavor 设置为 SQL92,将 Type Map 设置为 Java。将 JBoss 用作应用程序服务器时需要进行此更改。

****将 ADF 业务组件项目打包为 EJB 会话 bean。****

  1. 右键单击应用程序模块,选择业务组件部署。
  2. 在配置文件对话框中,选择 EJB Session Beans。
  3. 在 EJB Session Beans 对话框中,选择 Deploy To: Other EJB Container
  4. 在 AppModules 对话框中,配置应用程序模块,如下图 1 所示。

图 1. 应用模块的配置
替代文字

完成后,您的项目将类似于下图 2 中所示的项目。

图 2. JDeveloper 项目
替代文字

最后一步是配置应用程序模块以使用我们在上一步中创建的数据源。这是按如下方式完成的:

  1. 编辑应用程序模块。
  2. 在导航器中,右键单击业务组件应用程序模块图标并选择配置。
  3. 选择适当的配置。
  4. 选择此配置并单击编辑。
  5. 在连接类型列表中,选择 JDBC 数据源。
  6. 输入数据源名称。例如: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 应用程序,您必须执行以下操作:

  1. 从上下文菜单中选择 Deploy to EAR file 以将其部署为 EAR 文件。您必须将此应用程序部署到 EAR 文件而不是 WAR 文件,因为 JBoss 不会在 java:comp/env/ JNDI 命名空间下为 WAR 文件添加 EJB 引用。
  2. 将此文件手动复制到 /deploy 目录。
于 2009-02-18T09:34:19.380 回答