添加配置单元 jdbc 依赖关系会破坏 Glassfish 部署

Adding hive jdbc dependency breaks Glassfish deployment

我正在构建一个需要通过 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 部署 failure:WELD-001408:在注入点 [BackedAnnotatedParameter] [BackedAnnotatedConstructor] 的参数 1 @Inject failure:WELD-001408:类型注入器与限定符 @Default 的依赖关系不满足=28=] org.apache.hadoop.yarn.server.resourcemanager.webapp.RMWebAppFilter(喷油器)位于 org.apache.hadoop.yarn.server.resourcemanager.webapp.RMWebAppFilter.(RMWebAppFilter.java:0) 。请参阅 server.log 了解更多详情。

这似乎是 Glassfish 4.1.1 (1).

提供的库的依赖性问题

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

解决了问题
  • 正在从 Glassfish 4.1(1) 更新到 Glassfish 4.1(13)。然而,这并没有解决问题。
  • 在管理控制台的 Glassfish 部署屏幕上,我禁用了隐式 CDI 发现。

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

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