【问题标题】:Adding hive jdbc dependency breaks Glassfish deployment添加 hive jdbc 依赖项会破坏 Glassfish 部署
【发布时间】:2017-01-16 21:24:16
【问题描述】:

我正在构建一个需要通过 JDBC 访问 Hive 的 Java webapp,部署在 Glassfish 上。

一旦hive jdbc maven依赖

<dependency>
    <groupId>org.apache.hive</groupId>
    <artifactId>hive-jdbc</artifactId>
    <version>2.1.0</version>
</dependency>

添加后,部署中断,Glassfish 给出以下异常:

部署期间发生错误:加载应用程序时出现异常:CDI 部署失败:WELD-001408:在注入点 [BackedAnnotatedParameter] [BackedAnnotatedConstructor] @Inject public org.apache 的限定符 @Default 的类型注入器的依赖关系不满足。 hadoop.yarn.server.resourcemanager.webapp.RMWebAppFilter(Injector) 在 org.apache.hadoop.yarn.server.resourcemanager.webapp.RMWebAppFilter.(RMWebAppFilter.java:0) 。有关详细信息,请参阅 server.log。

【问题讨论】:

  • 您使用哪个版本的 Glassfish?
  • 我使用的是 GlassFish Server 开源版 4.1.1(内部版本 1)。这个问题似乎与必须更新番石榴版本有关。我尝试将它们从我的项目中排除,但我认为我必须在 Glassfish 本身上升级它

标签: java hadoop jdbc hive glassfish


【解决方案1】:

这似乎是 Glassfish 4.1.1 (1) 提供的库的依赖性问题。

它适用于 Glassfish 4.1 (13)。如果可能,您应该使用此版本。
您可以在这里下载:https://glassfish.java.net/download-archive.html

【讨论】:

  • 将尝试升级到 (13) 并尽快恢复。
  • 更新到 Glassfish 4.1 (13) 仍然有同样的问题。我取出 hive jdbc 依赖项,它立即部署没有问题。
【解决方案2】:

解决了这个问题

  • 从 Glassfish 4.1(1) 更新到 Glassfish 4.1(13)。但是,这本身并不能解决问题。
  • 在管理控制台中 Glassfish 的部署屏幕上,我禁用了隐式 CDI 发现。

【讨论】:

  • 我们可以在管理控制台的哪里找到 CDI Discovery?
【解决方案3】:

Hive-jdbc 有一些不幸的依赖项(javax.*、jetty 等)。 您的错误来自传递包含的 YARN webapp。

尝试瘦身hive-jdbc的Maven依赖, 因为像 YARN 这样的一些依赖项不属于 JDBC 驱动程序。,

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-05
    • 2015-12-17
    • 1970-01-01
    • 2016-01-15
    相关资源
    最近更新 更多