Использование плана развертывания для изменения источника данных модуля приложения в приложении ADF - PullRequest
0 голосов
/ 25 сентября 2018

Я работаю над тем, чтобы иметь план развертывания, связанный с приложением ADF, требуется, чтобы у разных сред (WLS) было другое имя источника данных, поскольку из-за некоторых конфликтов имен нельзя использовать одно и то же имя JNDI.

ADF и WLS версия: 12.2.1.3

Я уже упоминал это и это .

Прежде чем начать работу плана развертывания, мне нужночтобы найти способ, где я могу использовать имя переменной в ApplicationModule для источника данных и сослаться на него из web.xml или weblogic-application.xml.

Ниже были добавлены теги в web.xml и weblogic-application.xml

web.xml

<resource-ref>
  <res-ref-name>my-data-source</res-ref-name> 
  <res-type>javax.sql.DataSource</res-type> 
  <res-auth>Container</res-auth> 
</resource-ref>

weblogic-application.xml

<resource-description>
  <res-ref-name>my-data-source</res-ref-name>
  <jndi-name>jdbc/DMNonXAGtxDataSrc</jndi-name>
</resource-description>

Источник данных: jdbc / DMNonXAGtxDataSrc уже создан в WLS.

bc4j.xcfg code:

<BC4JConfig xmlns="http://xmlns.oracle.com/bc4j/configuration" version="11.1">
  <AppModuleConfigBag ApplicationName="model.AppModule">
    <AppModuleConfig name="AppModuleLocal" jbo.project="model.Model" ApplicationName="model.AppModule"
                     DeployPlatform="LOCAL">
      <Database jbo.TypeMapEntries="OracleApps" JDBCDataSource="my-data-source"/>
      <Security AppModuleJndiName="model.AppModule"/>
    </AppModuleConfig>
    <AppModuleConfig name="AppModuleShared" jbo.project="model.Model" ApplicationName="model.AppModule"
                     DeployPlatform="LOCAL">
      <AM-Pooling jbo.ampool.maxpoolsize="1" jbo.ampool.isuseexclusive="false"/>
      <Database jbo.TypeMapEntries="OracleApps" JDBCDataSource="my-data-source"/>
      <Security AppModuleJndiName="model.AppModule"/>
    </AppModuleConfig>
  </AppModuleConfigBag>
</BC4JConfig>

Приведенный выше код выдает ошибку, поскольку источник данных 'my-data-source' не найден.

Если я использую источник данных, как показано ниже

<Database jbo.TypeMapEntries="OracleApps" JDBCDataSource="java:comp/env/my-data-source"/>

Я получаю ошибку как

java.lang.ClassCastException: weblogic.jndi.factories.java.ReadOnlyContextWrapper cannot be cast to javax.sql.DataSource
    at oracle.jbo.server.DBTransactionImpl.lookupDataSource(DBTransactionImpl.java:1483)
    at oracle.jbo.server.DBTransactionImpl2.connectToDataSource(DBTransactionImpl2.java:328)
    at oracle.jbo.common.ampool.DefaultConnectionStrategy.connect(DefaultConnectionStrategy.java:203)
    at oracle.jbo.server.ApplicationPoolMessageHandler.doPoolConnect(ApplicationPoolMessageHandler.java:643)
    at oracle.jbo.server.ApplicationPoolMessageHandler.doPoolMessage(ApplicationPoolMessageHandler.java:434)
    at oracle.jbo.server.ApplicationModuleImpl.doPoolMessage(ApplicationModuleImpl.java:9958)

Любая точкаКак решить эту проблему?Если каким-либо другим способом это можно сделать, пожалуйста, ведите меня к этому.

С уважением, Сид

...