ejb 2 FinderException表或视图不存在

时间:2019-02-21 21:04:59

标签: jboss ejb websphere javabeans ejb-2.x

我正在使用现有的数据库和EJB 2.x应用程序。

我的任务是将应用程序从WebSphere 8迁移到JBOSS EAP 6.4

经过数天的努力,直到我们开始尝试使用某些bean之前,一切似乎都正常了。有些豆以“ Mgr”结尾。例如,有一个SiteMgr Bean和一个Site Bean。现在,所有Mgr Bean都可以工作,但其余的都不能。

如果您还不能确定,我不是EJB 2 Guru。这是错误的代码:

/**
 * getSessionContext
 */
public SiteVO getSite(int siteId) {
    SiteLocal siteLocal;
    try {
        siteLocal = getSiteHome().findByPrimaryKey(new SiteKey(siteId));
    } catch (FinderException e) {
        throw new EJBException(e);
    }

    return siteLocal.getSiteVO();       
}

因此,当我尝试findByPrimaryKey时,出现javax.ejb.FinderException,其原因如下:

java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist

深入了解一下,这是原因:

Error : 942, Position : 27, Sql = SELECT t0_Site.siteId FROM SITE t0_Site WHERE t0_Site.siteId=:1 , OriginalSql = SELECT t0_Site.siteId FROM SITE t0_Site WHERE t0_Site.siteId=?, Error Msg = ORA-00942: table or view does not exist

该数据库包含一个名为APP_SITES的表,并且WebSphere应用程序可能使用一些似乎特定于WebSphere的文件来指出这一点。

有appdb70.dbm和Map.mapxmi

这些文件很长。我将提供一些特定于以上示例的示例文本。

ejb-jar.xml

<entity id="Site">
        <ejb-name>Site</ejb-name>
        <local-home>com.app.site.entity.SiteLocalHome</local-home>
        <local>com.app.site.entity.SiteLocal</local>
        <ejb-class>com.app.site.entity.SiteBean</ejb-class>
        <persistence-type>Container</persistence-type>
        <prim-key-class>com.app.site.entity.SiteKey</prim-key-class>
        <reentrant>false</reentrant>
        <cmp-version>2.x</cmp-version>
        <abstract-schema-name>Site</abstract-schema-name>
        <cmp-field id="CMPAttribute_1087249279390">
            <field-name>siteId</field-name>
        </cmp-field>
        <cmp-field id="CMPAttribute_1087249281781">
            <field-name>siteName</field-name>
        </cmp-field>
        ...

Map.mapxmi

<ejbrdbmapping:EjbRdbDocumentRoot xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"
 xmlns:OracleModel="http:///com/ibm/db/models/oracle/oracle.ecore"
 xmlns:SQLConstraints="http:///org/eclipse/datatools/modelbase/sql/constraints.ecore"
 xmlns:SQLTables="http:///org/eclipse/datatools/modelbase/sql/tables.ecore" xmlns:ejb="ejb.xmi"
 xmlns:ejbrdbmapping="ejbrdbmapping.xmi" xmlns:Mapping="Mapping.xmi" xmi:id="EjbRdbDocumentRoot_1289312938455" topToBottom="true" commandStack="">

  <helper xmi:type="ejbrdbmapping:RdbSchemaProperies" xmi:id="RdbSchemaProperies_1289312938455" primitivesDocument="ORACLE_V11"/>


<nested xmi:type="ejbrdbmapping:RDBEjbMapper" xmi:id="RDBEjbMapper_1289313262395">
<helper xmi:type="ejbrdbmapping:PrimaryTableStrategy" xmi:id="PrimaryTableStrategy_1289313262395">
  <table xmi:type="OracleModel:OracleTable" href="META-INF/backends/ORACLE_V11_3/acapdb70.dbm#_q0x58OwNEd-LtOpsZa3J5w"/>
</helper>
<nested xmi:type="ejbrdbmapping:RDBEjbFieldMapper" xmi:id="RDBEjbFieldMapper_1289315290408">
  <inputs xmi:type="ejb:CMPAttribute" href="META-INF/ejb-jar.xml#CMPAttribute_1087249279390"/>
  <outputs xmi:type="SQLTables:Column" href="META-INF/backends/ORACLE_V11_3/acapdb70.dbm#_q0x58ewNEd-LtOpsZa3J5w"/>
  <typeMapping xmi:type="ejbrdbmapping:RDBEjbFieldMapper" href="JavatoORACLE_V11TypeMaps.V7.xmi#int-NUMBER"/>
</nested>
<nested xmi:type="ejbrdbmapping:RDBEjbFieldMapper" xmi:id="RDBEjbFieldMapper_1289315290409">
  <inputs xmi:type="ejb:CMPAttribute" href="META-INF/ejb-jar.xml#CMPAttribute_1087249285656"/>
  <outputs xmi:type="SQLTables:Column" href="META-INF/backends/ORACLE_V11_3/acapdb70.dbm#_q0x5-ewNEd-LtOpsZa3J5w"/>
  <typeMapping xmi:type="ejbrdbmapping:RDBEjbFieldMapper" href="JavatoORACLE_V11TypeMaps.V7.xmi#String-VARCHAR"/>
</nested>

appdb70.dbm(包含太多数据,无法发布...)

<?xml version="1.0" encoding="UTF-8"?>
<!--xtools2_universal_type_manager-->
<xmi:XMI xmlns:datamodelversion="http://www.ibm.com/com.ibm.datatools.core/model/7.5.1.1" xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:OracleModel="http:///com/ibm/db/models/oracle/oracle.ecore" xmlns:SQLConstraints="http:///org/eclipse/datatools/modelbase/sql/constraints.ecore" xmlns:SQLDataTypes="http:///org/eclipse/datatools/modelbase/sql/datatypes.ecore" xmlns:SQLExpressions="http:///org/eclipse/datatools/modelbase/sql/expressions.ecore" xmlns:SQLSchema="http:///org/eclipse/datatools/modelbase/sql/schema.ecore" xmlns:SQLStatements="http:///org/eclipse/datatools/modelbase/sql/statements.ecore" xmlns:SQLTables="http:///org/eclipse/datatools/modelbase/sql/tables.ecore">
  <OracleModel:OracleDatabase xmi:id="_WPDywewNEd-LtOpsZa3J5w" name="APPdb70" vendor="Oracle" version="11" schemas="_WQG7oOwNEd-LtOpsZa3J5w"/>
  <SQLSchema:Schema xmi:id="_WQG7oOwNEd-LtOpsZa3J5w" name="APPWDB" triggers="_q0VNoOwNEd-LtOpsZa3J5w ..." database="_WPDywewNEd-LtOpsZa3J5w"/>
  <SQLTables:Trigger xmi:id="_q0VNoOwNEd-LtOpsZa3J5w" name="APP_APPOINTMENT_D_TRG" schema="_WQG7oOwNEd-LtOpsZa3J5w" subjectTable="_q0VNpuwNEd-LtOpsZa3J5w" ...>
    <dependencies xmi:id="_q0VNoewNEd-LtOpsZa3J5w" targetEnd="_q07ry-wNEd-LtOpsZa3J5w"/>
    <dependencies xmi:id="_q0VNouwNEd-LtOpsZa3J5w" targetEnd="_q0e_b-wNEd-LtOpsZa3J5w"/>
    <dependencies xmi:id="_q0VNo-wNEd-LtOpsZa3J5w" targetEnd="_q0VNpuwNEd-LtOpsZa3J5w"/>
    <dependencies xmi:id="_q0VNpOwNEd-LtOpsZa3J5w" targetEnd="_q0VN_OwNEd-LtOpsZa3J5w"/>
    <actionStatement xsi:type="SQLStatements:SQLStatementDefault" ..."/>
  </SQLTables:Trigger>
  <OracleModel:OracleTable xmi:id="_q0VNpuwNEd-LtOpsZa3J5w" name="APP_APPOINTMENT" schema="_WQG7oOwNEd-LtOpsZa3J5w" triggers="_q0VNoOwNEd-LtOpsZa3J5w ...>
    <columns xmi:id="_q0VNp-wNEd-LtOpsZa3J5w" name="APPT_ID" nullable="false">
      <containedType xsi:type="SQLDataTypes:FixedPrecisionDataType" xmi:id="_q0VNqOwNEd-LtOpsZa3J5w" name="NUMBER" primitiveType="NUMERIC"/>
    </columns>
    <columns xmi:id="_q0VNqewNEd-LtOpsZa3J5w" name="RMKS_TX">
      <containedType xsi:type="SQLDataTypes:CharacterStringDataType" xmi:id="_q0VNquwNEd-LtOpsZa3J5w" name="VARCHAR2" primitiveType="CHARACTER_VARYING" length="200"/>
    </columns>

请注意,您可以在多个文件中找到“ CMPAttribute_1087249279390”。 JBOSS似乎没有利用这些额外的文件。

我现在不知道该怎么办。我想通了其他所有内容,但似乎无法解决。任何使bean正常工作的修补程序将不胜感激!

0 个答案:

没有答案