【问题标题】:Jboss error New missing/unsatisfied dependencies jboss.naming.context.java.jboss.datasourcesJboss 错误 新的缺失/不满足的依赖项 jboss.naming.context.java.jboss.datasources
【发布时间】:2018-03-24 15:11:59
【问题描述】:

我有以下数据源,我们使用的是oracle jdbc驱动,ojdbc6.jar:

<?xml version="1.0" encoding="UTF-8"?>
<datasources xmlns="http://www.jboss.org/ironjacamar/schema">
  <datasource jndi-name="java:jboss/datasources/hubAdminDS" enabled="true" 
   use-java-context="true" pool-name="hubAdmin" jta="false">
    <connection-url>jdbc:oracle:thin:@10.0.153.177:1521:XE</connection-url>
    <driver>ojdbc6.jar</driver>
    <pool>
      <min-pool-size>5</min-pool-size>
      <max-pool-size>10</max-pool-size>
      <prefill>true</prefill>
    </pool>
    <security>
      <user-name>HUBDBLOCAL</user-name>
      <password>HUBDBLOCAL</password>
    </security>
  </datasource>


  <datasource jndi-name="java:jboss/datasources/TASK_DB" enabled="true" 
   use-java-context="true" pool-name="TASK_DB" spy="true" use-ccm="true">
    <connection-url>jdbc:oracle:thin:@10.0.153.177:1521:XE</connection-url>
    <driver>ojdbc6.jar</driver>
    <pool>
      <min-pool-size>10</min-pool-size>
      <max-pool-size>20</max-pool-size>
      <prefill>true</prefill>
    </pool>
    <security>
      <user-name>HUBDBLOCAL</user-name>
      <password>HUBDBLOCAL</password>
    </security>
  </datasource>

 <datasource jndi-name="java:jboss/datasources/SAFE" enabled="true"  
  use-java-context="true" pool-name="SAFE" jta="false">
   <connection-url>jdbc:oracle:thin:@10.0.153.177:1521:XE</connection-url>
   <driver>ojdbc6.jar</driver>
   <pool>
     <min-pool-size>3</min-pool-size>
     <max-pool-size>4</max-pool-size>
     <prefill>true</prefill>
   </pool>
   <security>
     <user-name>HUBDBLOCAL</user-name>
     <password>HUBDBLOCAL</password>
   </security>
 </datasource>

 <datasource jndi-name="java:jboss/datasources/JDBC_DB" enabled="true" 
  use-java-context="false" pool-name="JDBC_DB" jta="false">
   <connection-url>jdbc:oracle:thin:@10.0.153.177:1521:XE</connection-url>
   <driver>ojdbc6.jar</driver>
   <pool>
      <min-pool-size>5</min-pool-size>
      <max-pool-size>10</max-pool-size>
      <prefill>true</prefill>
    </pool>
    <security>
      <user-name>HUBDBLOCAL</user-name>
      <password>HUBDBLOCAL</password>
    </security>
  </datasource>

  <datasource jndi-name="java:jboss/datasources/MAIL_SENDER_DB" 
   enabled="true" use-java-context="true" pool-name="MAIL_SENDER_DB"
   jta="false">
    <connection-url>jdbc:oracle:thin:@10.0.153.177:1521:XE</connection-url>
    <driver>ojdbc6.jar</driver>
    <pool>
      <min-pool-size>3</min-pool-size>
      <max-pool-size>4</max-pool-size>
      <prefill>true</prefill>
    </pool>
    <security>
      <user-name>HUBDBLOCAL</user-name>
      <password>HUBDBLOCAL</password>
    </security>
  </datasource>

   <datasource jndi-name="java:jboss/datasources/HELPDESK" enabled="true" 
    use-java-context="true" pool-name="HELPDESK" jta="false">
     <connection-url>jdbc:oracle:thin:@10.0.153.177:1521:XE</connection-url>
     <driver>ojdbc6.jar</driver>
     <pool>
       <min-pool-size>10</min-pool-size>
       <max-pool-size>20</max-pool-size>
       <prefill>true</prefill>
     </pool>
     <security>
       <user-name>HUBDBLOCAL</user-name>
       <password>HUBDBLOCAL</password>
     </security>
   </datasource>
</datasources>

当我部署应用程序时,出现以下错误:

15:44:40,915 INFO  [org.jboss.as.controller] (DeploymentScanner-threads - 2) 
JBAS014774: Service status report
JBAS014775:    New missing/unsatisfied dependencies:
  service jboss.naming.context.java.jboss.datasources.JDBC_DB (missing) dependents: [service jboss.naming.context.java.module.bpm.bpm.env."com.hds.hub.api.processes.impl.UserServicesEJB".dataSource, service jboss.naming.context.java.module.bpm.bpm.env."com.hds.hub.iArchive.impl.FileArchiveServiceEJB".dataSource] 
  service jboss.naming.context.java.jboss.datasources.MAIL_SENDER_DB (missing) dependents: [service jboss.naming.context.java.module.bpm.bpm.env.jdbc.MAIL_SENDER_DB] 
  service jboss.naming.context.java.jboss.datasources.TASK_DB (missing) dependents: [service jboss.naming.context.java.module.bpm.bpm.env.jdbc.TASK_DB, service jboss.persistenceunit."bpm.war#org.jbpm.persistence.jpa"] 
  service jboss.naming.context.java.jboss.datasources.hubAdminDS (missing) dependents: [service jboss.naming.context.java.module.bpm.bpm.env.jdbc.HUB_ADMIN_DB] 

15:44:40,921 ERROR [org.jboss.as.server.deployment.scanner] (DeploymentScanner-threads - 1) {"JBAS014653: Composite operation failed and was rolled back. Steps that failed:" => {"Operation step-2" => {"JBAS014771: Services with missing/unavailable dependencies" => ["jboss.naming.context.java.module.bpm.bpm.env.\"com.hds.hub.iArchive.impl.FileArchiveServiceEJB\".dataSourcejboss.naming.context.java.jboss.datasources.JDBC_DBMissing[jboss.naming.context.java.module.bpm.bpm.env.\"com.hds.hub.iArchive.impl.FileArchiveServiceEJB\".dataSourcejboss.naming.context.java.jboss.datasources.JDBC_DB]","jboss.naming.context.java.module.bpm.bpm.env.jdbc.HUB_ADMIN_DBjboss.naming.context.java.jboss.datasources.hubAdminDSMissing[jboss.naming.context.java.module.bpm.bpm.env.jdbc.HUB_ADMIN_DBjboss.naming.context.java.jboss.datasources.hubAdminDS]","jboss.naming.context.java.module.bpm.bpm.env.jdbc.TASK_DBjboss.naming.context.java.jboss.datasources.TASK_DBMissing[jboss.naming.context.java.module.bpm.bpm.env.jdbc.TASK_DBjboss.naming.context.java.jboss.datasources.TASK_DB]","jboss.naming.context.java.module.bpm.bpm.env.\"com.hds.hub.api.processes.impl.UserServicesEJB\".dataSourcejboss.naming.context.java.jboss.datasources.JDBC_DBMissing[jboss.naming.context.java.module.bpm.bpm.env.\"com.hds.hub.api.processes.impl.UserServicesEJB\".dataSourcejboss.naming.context.java.jboss.datasources.JDBC_DB]","jboss.naming.context.java.module.bpm.bpm.env.jdbc.MAIL_SENDER_DBjboss.naming.context.java.jboss.datasources.MAIL_SENDER_DBMissing[jboss.naming.context.java.module.bpm.bpm.env.jdbc.MAIL_SENDER_DBjboss.naming.context.java.jboss.datasources.MAIL_SENDER_DB]","jboss.persistenceunit.\"bpm.war#org.jbpm.persistence.jpa\"jboss.naming.context.java.jboss.datasources.TASK_DBMissing[jboss.persistenceunit.\"bpm.war#org.jbpm.persistence.jpa\"jboss.naming.context.java.jboss.datasources.TASK_DB]"]}}}

JDBC_DB、MAIL_SENDER、TASK_DB 和 hubAdminDS 在数据源中定义

当我连接到远程服务器时没有错误,但是当我连接到本地服务器时出现上述错误。

任何人都可以解释,为什么我有这些错误?我该如何纠正它?

【问题讨论】:

    标签: oracle web-applications jboss datasource


    【解决方案1】:

    您的数据源(“java:jboss/datasources/JDBC_DB”)似乎没有正确部署在 JBoss 服务器中,请按照以下步骤完成:

    安装 JDBC 驱动作为核心模块:

    1.在$JBOSS_HOME/modules 下创建一个目录。在本例中:“$JBOSS_HOME/modules/com/oracle/jdbc/main”。

    2.把JDBC驱动jar(ojdbc6.jar)放到这个目录下

    3.创建模块配置文件module.xml:

    <module xmlns="urn:jboss:module:1.1" name="com.oracle.jdbc">
      <resources>
        <resource-root path="ojdbc6.jar"/>
      </resources>
      <dependencies>
        <module name="javax.api"/>
        <module name="javax.transaction.api"/>
      </dependencies>
    </module>
    

    注意jdbc驱动jar必须包含一个META-INF/services/java.sql.Driver文本文件,指定jdbc Driver,否则用于加载驱动的Java服务提供者机制将不起作用。来自主要/常见供应商的只有 Informix 没有此功能。

    4.在standalone.xml或domain.xml中配置数据源设置。

    您现在可以编辑您的standalone(-).xml 或domain(-).xml 来配置引用此模块的数据源:

    <subsystem ...>
        <datasources>
          <datasource jndi-name="java:jboss/datasources/OracleDS" pool-name="OracleDS" enabled="true" use-java-context="true">
            <connection-url>jdbc:oracle:thin:@myhostname:1521:oracle</connection-url>
            <driver>oracle</driver>
            <pool>
              <min-pool-size>10</min-pool-size>
              <max-pool-size>20</max-pool-size>
              <prefill>true</prefill>
            </pool>
            <security>
              <user-name>myuser</user-name>
              <password>mypass</password>
            </security>
            <validation>
              <validate-on-match>true</validate-on-match>
              <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker"></valid-connection-checker>
              <stale-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleStaleConnectionChecker"></stale-connection-checker>
              <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter"></exception-sorter>
            </validation>
          </datasource>
          <drivers>
            <driver name="oracle" module="com.oracle.jdbc">
              <xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>
            </driver>
          </drivers>
        </datasources>
      </subsystem>
    

    或者对于 xa 数据源:

    <subsystem ...>
          <datasources>
              <xa-datasource jndi-name="java:/XAOracleDS" pool-name="XAOracleDS">
                  <driver>oracle</driver>
                  <xa-datasource-property name="URL">jdbc:oracle:thin:@myhostname:1521:oracle</xa-datasource-property>
                  <security>
                      <user-name>admin</user-name>
                      <password>admin</password>
                  </security>
                  <xa-pool>
                       <is-same-rm-override>false</is-same-rm-override>
                       <no-tx-separate-pools />
                  </xa-pool>
                  <validation>
                       <validate-on-match>true</validate-on-match>  
                      <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker"></valid-connection-checker>
                      <stale-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleStaleConnectionChecker"></stale-connection-checker>
                      <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter"></exception-sorter>
                  </validation>
              </xa-datasource>
              <drivers>
                   <driver name="oracle" module="com.oracle">
                       <xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>
                   </driver>
              </drivers>
          </datasources>
      </subsystem>
    

    一旦将 DB-Driver 设置为模块并且服务器日志如下所示:

    12:10:47,381 INFO  [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-2) JBAS010400: Bound data source [java:jboss/datasources/OracleDS]
    ....
    

    【讨论】:

      【解决方案2】:

      我需要允许多个连接到我的数据库,这受到以下命令的限制:

      sqlplus / as sysdba
      
      ALTER SYSTEM SET PROCESSES= 300 SCOPE=SPFILE; 
      SHUT IMMEDIATE;
      STARTUP;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-05
        • 1970-01-01
        • 2013-07-06
        • 1970-01-01
        相关资源
        最近更新 更多