ejb 2 Таблица или представление FinderException не существует - PullRequest
0 голосов
/ 22 февраля 2019

Я работаю с существующей базой данных и приложением EJB 2.x.

Моя задача - перенести приложение из WebSphere 8 в JBOSS EAP 6.4

После многих дней борьбыс этой вещью, казалось, все работало, пока мы не начали пытаться использовать некоторые бобы.Есть бобы, которые заканчиваются на «Mgr».Например, есть компонент SiteMgr и компонент Site.Прямо сейчас все бобы Mgr работают, но не все остальные.

Если вы не могли сказать, я не гуру EJB 2.Вот код, который выдает ошибки:

/**
 * 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();       
}

Итак, когда я пытаюсь найтиByPrimaryKey, я получаю 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, похоже, не использует эти дополнительные файлы.

Я не уверен, что делать на этом этапе.Я понял все остальное, но я не могу обойти это.Любое исправление, которое заставляет бобы работать, будет оценено!

...