【问题标题】:Showing missing dependencies while deploying an application in JBoss AS 7在 JBoss AS 7 中部署应用程序时显示缺少的依赖项
【发布时间】:2014-03-03 14:43:18
【问题描述】:

部署ear文件时出现以下异常,结构如下:

Ear由ejb模块(EJB + JPA)和war模块组成

    //stack trace
    11:47:09,207 INFO  [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-2) 
    JBAS010404: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version  
    9.0)
    11:47:09,290 INFO  [org.jboss.web] (MSC service thread 1-2) JBAS018210: Registering 
    web context: /saleshout
    11:47:09,964 INFO  [org.jboss.as.server] (HttpManagementService-threads - 6) 
    JBAS015870: Deploy of deployment "SaleShoutEar-0.0.1-SNAPSHOT.ear" was rolled back 
    with failure message {"JBAS014771: Services with missing/unavailable dependencies" 
    => ["jboss.persistenceunit.\"SaleShoutEar-0.0.1-SNAPSHOT.ear/nsqejb-0.0.1-
    SNAPSHOT.jar#persistence\"jboss.naming.context.java.jboss.
    SMSCampaignDataSourceMissing[jboss.persistenceunit.\"SaleShoutEar-0.0.1- 
    SNAPSHOT.ear/nsqejb-0.0.1-
    SNAPSHOT.jar#persistence\"jboss.naming.context.java.jboss.SMSCampaignDataSource]"]}
    11:47:10,010 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-1)  
    JBAS015877: Stopped deployment nsqejb-0.0.1-SNAPSHOT.jar in 45ms
    11:47:10,039 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-3) 
    JBAS015877: Stopped deployment saleshout-0.0.1-SNAPSHOT.war in 74ms
    11:47:10,091 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-3) 
    JBAS015877: Stopped deployment SaleShoutEar-0.0.1-SNAPSHOT.ear in 126ms
    11:47:10,102 INFO  [org.jboss.as.controller] (HttpManagementService-threads - 6) 
    JBAS014774: Service status report
    JBAS014775:    New missing/unsatisfied dependencies:
    service jboss.naming.context.java.jboss.SMSCampaignDataSource (missing) dependents: 
    [service jboss.persistenceunit."SaleShoutEar-0.0.1-SNAPSHOT.ear/nsqejb-0.0.1-
    SNAPSHOT.jar#persistence"] 

要将 ejb 与 JPA 集成,请点击此链接 http://theopentutorials.com/examples/java-ee/ejb3/how-to-create-ejb3-jpa-project-in-eclipse-jboss-as-7-1/

我已经配置了数据源,但仍然得到persistence.xml 相关的异常。 我是 JBoss 的新手。谁能告诉我为什么会出现这个异常。

    //Persistence.xml
    <persistence 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" version="2.0">
    <persistence-unit name="persistence" transaction-type="JTA">
     <provider>org.hibernate.ejb.HibernatePersistence</provider>
     <jta-data-source>java:jboss/SMSCampaignDataSource</jta-data-source>
     <class>...</class>
 <properties>
  <property name="hibernate.dialect" 
      value="org.hibernate.dialect.PostgreSQLDialect"></property>
  <property name="show_sql" value="true"/>      
     </properties>
     </persistence-unit>

    </persistence>

谢谢。

【问题讨论】:

  • SMSCampaignDataSource Missing。您可能已在 persistence.xml 中将其声明为 jta 数据源,但您没有自己配置。
  • 异常在哪里。我只能看到一堆无用的(对我们而言)日志
  • @Orid 我已经配置了数据源。请查看更新后的帖子。谢谢
  • 您已经声明了一个持久性单元,但您还没有定义它使用的数据源。也就是说:您已经配置了 Hibernate,但没有配置 Postgres 连接。见docs.jboss.org/author/display/WFLY8/DataSource+configuration

标签: java jpa jboss7.x ejb-3.0


【解决方案1】:

您必须在standalone.xml 中定义数据源,如果您已经定义,请查看您添加的数据源是否已保存。堆栈跟踪清楚地表明问题出在数据源上,因为persistence.xml 很好。我遇到了同样的情况,但在我的情况下,我在standalone.xml中所做的更改没有被保存,因为JBoss目录具有root权限。所以我编辑并添加了具有root权限的standalone.xml中的数据源并解决了缺少依赖项的问题。

如果您的情况不同,那么此链接可能会对您有所帮助:Services with missing/unavailable dependencies

【讨论】:

    猜你喜欢
    • 2015-09-17
    • 1970-01-01
    • 1970-01-01
    • 2012-04-26
    • 1970-01-01
    • 2015-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多