2013-01-10 39 views
4

任何想法,为什么我得到这个错误:服务缺少/不可用依赖

JBAS014775: New missing/unsatisfied dependencies: 
    service jboss.jdbc-driver.mysql (missing) dependents: [service jboss.data-source.jboss/datasources/UserDS] 

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.data-source.jboss/datasources/UserDSjboss.jdbc-driver.com_mysql_jdbcMissing[jboss.data-source.jboss/datasources/UserDSjboss.jdbc-driver.com_mysql_jdbc]"]}}}` 

的persistence.xml

<?xml version="1.0" encoding="UTF-8"?> 
    <persistence version="2.0" 
     xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation=" 
      http://java.sun.com/xml/ns/persistence 
      http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> 
     <persistence-unit name="primary"> 
      <jta-data-source>java:jboss/datasources/UserDS</jta-data-source> 
      <properties> 
      <!-- Properties for Hibernate --> 
      <property name="hibernate.hbm2ddl.auto" value="create-drop" /> 
      <property name="hibernate.show_sql" value="true" /> 
      </properties> 
     </persistence-unit> 
    </persistence> 

mydatasource- ds.xml中

<?xml version="1.0" encoding="UTF-8"?> 
      <datasources xmlns="http://www.jboss.org/ironjacamar/schema" 
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
       xsi:schemaLocation="http://www.jboss.org/ironjacamar/schema http://docs.jboss.org/ironjacamar/schema/datasources_1_0.xsd"> 
       <datasource jndi-name="java:jboss/datasources/UserDS" pool-name="kitchensink-quickstart" 
        enabled="true" use-java-context="true"> 
        <!-- jdbc:h2:mem:kitchensink-quickstart;DB_CLOSE_ON_EXIT=FALSE;DB_CLOSE_DELAY=-1 --> 
        <connection-url> 
         jdbc:mysql://localhost:3306/test 
        </connection-url> 
        <driver>mysql</driver> 
        <security> 
         <user-name>root</user-name> 
         <password>root</password> 
        </security> 
       </datasource> 
      </datasources> 

module.xml

<module xmlns="urn:jboss:module:1.0" name="com.mysql"> 
     <resources> 
     <resource-root path="mysql-connector-java-5.1.22.jar"/> 
     </resources> 
     <dependencies> 
     <module name="javax.api"/> 
     </dependencies> 
    </module> 

回答

3

该错误的原因是你缺少的依赖的Java:JBoss的/数据源/ UserDS。 使用Jboss 7.x +,可以将这些数据源直接添加到您发现的应用服务器配置中。

独立配置和域配置之间的区别是独立配置仅适用于具有所述配置的一个应用服务器。如果仔细观察domain.xml,您将看到多个应用程序服务器配置(aka配置文件)。这些将非常像standalone,standalone-full,standalone-ha,standalone-full-ha配置文件,这些文件位于standalone/conf *目录下。在域模式下运行允许您从中心位置(即域控制器)控制在该域上运行的许多不同服务器实例。 (这包括如果已经配置了集群的节点)

这与您的原始问题密切相关,因为域控制器有能力优雅地将此数据源配置共享到其所有节点。

4

如果指定数据源为web.xml资源引用,然后匹配的名称与恰好在 standalone.xml(或domain.xml中):

的web.xml

<resource-ref> 
    <res-ref-name>java:jboss/datasources/OracleDS</res-ref-name> 
    <res-type>javax.sql.DataSource</res-type> 
    <res-auth>Container</res-auth> 
</resource-ref> 

standalone.xml

<datasource jndi-name="java:jboss/datasources/OracleDS" pool-name="OracleDS" enabled="true" use-java-context="false"> 
+0

不错!在开始时,我的''没有'java:'。这在JBoss EAP 7.0中工作正常,但在JBoss EAP 6.4上无效。使名称匹配完全固定在6.4。 –