【问题标题】:Services with missing/unavailable dependencies error缺少/不可用依赖项错误的服务
【发布时间】:2014-06-13 17:02:47
【问题描述】:

试图在 JBoss AS 7 上启动一个 bean 得到这个错误:

15:55:51,252 INFO  [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS015870: Deploy of deployment "dodsr.ear" was rolled back with failure message {"JBAS014771: Services with missing/unavailable dependencies" => ["jboss.persistenceunit.\"dodsr.ear/dodsr.jar#DoDSRMGR\"jboss.naming.context.java.DoDSRDSMissing[jboss.persistenceunit.\"dodsr.ear/dodsr.jar#DoDSRMGR\"jboss.naming.context.java.DoDSRDS]"]}

谁能解释一下这是什么意思?我必须配置什么才能让这个东西运行?

另外,日志中的这一行:

15:55:51,287 INFO  [org.jboss.as.controller] (DeploymentScanner-threads - 2) JBAS014774: Service status report JBAS014775:    New missing/unsatisfied dependencies:
  service jboss.naming.context.java.DoDSRDS (missing) dependents: [service jboss.persistenceunit."dodsr.ear/dodsr.jar#DoDSRMGR"] 

这是在告诉我我做错了什么?

【问题讨论】:

    标签: java jboss7.x ear


    【解决方案1】:

    在您的最后一个问题之后,我猜想问题是在您的 persistence.xml 文件中,您指的是一个名为 java:/DoDSRDS 的 JTA 数据源。

    服务器日志告诉您它没有同名的 JDBC 数据源。检查您的 Jboss 管理控制台的 JDBC 数据源部分,看看您的资源名称是否正确。您应该有一个名为 DoDSRDS 的 JDBC 数据源。

    另外,您使用的是java:/DoDSRDS 格式。我对 Jboss 资源命名了解不多,但在阅读 other related posts 之后,我认为您的资源名称的正确格式应该是 java:jboss/DoDSRDS。尝试在 persistence.xml 文件中使用这种格式,看看是否有效。

    【讨论】:

    • 另外,请务必检查 Jboss 管理控制台/JDBC 数据源中的“使用 JTA”选项。
    • 感谢您的意见,非常感谢。根据您的建议进行了一些更改,现在出现此错误:在 java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_55] 原因:java.lang.IllegalArgumentException: JBAS011470: Persistence unitName未指定,应用程序部署“dodsr.ear”中有 2 个持久性单元定义。要么将应用程序更改为只有一个持久性单元定义,要么为对持久性单元的每个引用指定 unitName。这是否意味着存档中有两个persistence.xml文件?
    • 是的。部署管理器在您的 EAR 中找到两个 persistence.xml 文件检查您的项目。
    • 文件应该在哪里?在耳朵或罐子的 META-INF 中?
    • 它可以在这两个地方,但不能同时在这两个地方。
    猜你喜欢
    • 1970-01-01
    • 2013-08-11
    • 2019-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-11
    • 2021-03-07
    • 1970-01-01
    相关资源
    最近更新 更多