Maven 的 Jersey 问题 - Shade 插件

2024-03-02

我的问题非常类似于:仅当依赖项组装到单个 jar 中时才会抛出 Jersey 异常 https://stackoverflow.com/questions/12611213/jersey-exception-only-thrown-when-depencencies-assembled-into-a-single-jar

我运行我的应用程序(jetty嵌入+球衣)并且一切正常。当我尝试创建可执行 JAR 时,出现错误:

org.glassfish.jersey.message.internal.WriterInterceptorExecutor$TerminalWriterInterceptor 围绕写入 GRAVE:找不到媒体类型 = application/json、类型 = 类的 MessageBodyWriter

我的 POM.XML:

<plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>2.3</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <transformers>
                                <transformer
                                    implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                    <mainClass>server.application.DeepDig</mainClass>
                                </transformer>
                            </transformers>

                            <filters>
                                <!-- filter to address "Invalid signature file" issue - see https://stackoverflow.com/a/6743609/589215 -->
                                <filter>
                                    <artifact>*:*</artifact>
                                    <excludes>
                                        <exclude>META-INF/*.SF</exclude>
                                        <exclude>META-INF/*.DSA</exclude>
                                        <exclude>META-INF/*.RSA</exclude>
                                    </excludes>
                                </filter>
                            </filters>

                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>

不久前我遇到了同样的问题。问题在于服务文件未合并。以下对我有用:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <configuration>
                <transformers>
                    <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                        <mainClass>Foo</mainClass>
                    </transformer>
                    <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
                </transformers>
            </configuration>
        </plugin>

问题的根本原因是,几个与 Jersey 相关的 jar 文件中的每一个都在 META-INF 中包含一个“服务”文件,其中包含用于 Jersey 正常工作的元数据。默认情况下,shade 插件会选择这些文件之一并将其包含在 fat jar 中。由于不包含其他文件的元数据,Jersey 无法正常工作。

此修复包括调用阴影插件时的附加变压器。该转换器合并各个文件中的数据,而不是仅选择其中一个文件。这样,所有必需的元数据都包含在 fat jar 中,并且 Jersey 可以正常工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Maven 的 Jersey 问题 - Shade 插件 的相关文章

  • java.lang.NoSuchMethodError: org.mockito.Mockito.framework()Lorg/mockito/MockitoFramework

    我一直面临一个特殊的问题 基本上 当我正常运行 Mockito 测试 即 作为 Junit 测试运行 时 它会出现以下错误 有人可以帮我看看我的错误是什么吗 收到的错误 java lang NoSuchMethodError org moc
  • 我们可以实例化一个抽象类吗?

    在一次采访中 有人问我 我们是否可以实例化一个抽象类 我的回答是 不 我们不能 但是 面试官告诉我 错了 我们可以 我对此争论了一下 然后他告诉我自己在家尝试一下 abstract class my public void mymethod
  • 为什么签名的 Android apk 无法在模拟器上运行

    我已经制作了一个android项目的签名apk 每当我的客户尝试在模拟器上运行它时 他都会遇到以下错误消息 D Android android sdk windows tools gt adb install r abc apk 500 K
  • 在循环中使用 if 语句? - 加工

    假设我必须在 for 循环中使用 if 语句 并且 for 循环在特定条件下触发 而 if 语句仅在 for 循环达到特定阶段时触发 例如 条件是一个计数器 当发生特定事件 例如球从屏幕上掉下来 时 该计数器会进行计数 每次球穿过屏幕时 都
  • 使用 TLS 证书 JDBC 连接到 Oracle 数据库

    我正在尝试用 Java 编写一个连接类来使用 JDBC 驱动程序连接到 Oracle 数据库 但我想保护用于连接到 Oracle 数据库的参数 例如 jdbcurl 用户名 密码 我必须使用 TLS 证书概念来连接到 Java 中的 Ora
  • 为什么 Java 类加载器找不到我的接口?

    在下面的代码中 我使用动态生成一个类sun tools javac Main 我将使用反射创建此类的新实例 问题是 我想避免使用 Reflection 来调用我为此类定义的方法 因此我创建了一个 ProxyInvoker 来引用我在项目中定
  • 此代码签名证书对于签名小程序有效吗?

    我们购买了代码签名证书来签名小程序 但在签名小程序时出现以下错误 C CM WEB INF gt jarsigner keystore code signing keystore C CM SweetApplet jar code sign
  • Java 相当于 C# 的 async/await?

    我是一名普通的 C 开发人员 但偶尔也会使用 Java 开发应用程序 我想知道 Java 中是否有相当于 C async await 的东西 简单来说 java 相当于 async Task
  • Java:字符串连接和变量替换的最佳实践[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 在 Java 中连接字符串和添加变量值的方法有太多 我应该如何选择一个 优点 缺点 最佳用例等 MessageFormat forma
  • Java - 在特定日期执行方法[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我需要在每年的特定日期执行一个方法 我该如何在java中执行此操作 Thanks Chris 按优先顺序排列 The Quartz htt
  • Java - 修剪字节数组中的尾随空格

    我有与此类似的字节数组 77 83 65 80 79 67 32 32 32 32 32 32 32 大致等于 M S A P O C when printed as chars 现在我想修剪尾随空白 使其看起来像 77 83 65 80
  • 无法使用 jolokia 从 Kafka 提取 JMX 数据

    我已经在 centos 7 机器上安装了 Jolokia 并尝试使用 Jolokia 代理提取 Kafka 指标 并使用 Nagios 插件 check jmx4perl 与 Icinga 监控工具集成 以下是我遵循的配置步骤 步骤1 下载
  • 在java中的super调用之前创建一个对象

    考虑到简单的java代码是行不通的 public class Bar extends AbstractBar private final Foo foo new Foo bar public Bar super foo 我需要在之前创建一个
  • JavaFX:在 WebView img 标签中未加载本地图像

    以下是我的代码 一切安好 我可以加载远程页面 我可以放置 HTML 内容 但我的img标签显示一个X标志表示无法加载图像 Note 我的图像与类位于同一个包中JavaFX在 Smiley 文件夹中 我可以列出所有图像 这意味着路径没有问题
  • 在Android中创建自定义按钮类

    我正在尝试为我的 Android 应用程序创建自定义按钮类 public class TicTacButton extends Button 我已经在里面设置了所有构造函数TicTacButton并创建了自定义方法和属性 在我的主要活动中
  • JPanel 无法使用 setSize 和 setPreferedSize

    请解释为什么它不起作用 您也可以发布解决方案来解决此问题 非常感谢您提前 public class Run extends JFrame Fields static JPanel jpanel private int x y Constru
  • 设置滚动条粗细

    有没有办法调整滚动条的粗细JScrollPane 默认值有点笨拙 一个快速但又肮脏的解决方案是将宽度 高度明确设置为例如10 像素通过 jScrollPane getVerticalScrollBar setPreferredSize ne
  • 数组所有可能的组合

    我有一个字符串数组 ted williams golden voice radio 我希望这些关键字的所有可能组合采用以下形式 ted williams golden voice radio ted williams ted golden
  • 无法使用 Struts 2 重定向 JSP 文件并显示值

    我创建了一个简单的程序 使用文本字段获取用户的名字和姓氏 但问题是 当我单击提交按钮时 我无法将其重定向到另一个显示用户名字和姓氏的 jsp 文件 这是我的HelloAction class package com novamsc trai
  • Struts2 中有多种结果类型?

    我有一个使用 Tiles 的 Struts2 应用程序 如何在操作映射中获取多种结果类型 因为我需要将de输出设置为JSON数据 并且同时Tiles 我努力了

随机推荐

  • Jquery改变背景颜色

    我正在用这个例子尝试jquery document ready function button mouseover function p 44 test css background color yellow p 44 test hide
  • Perl 的类似 Lint 的程序?

    我正在寻找 Perl 的 lint 它可以捕获死代码和其他潜在问题 有什么建议么 I have use strict use warnings 已经有了 但我想要更多 Perl 评论家 http search cpan org perldo
  • li或dl中嵌套div的HTML5标准

    我知道 HTML5 中不允许在 li 中嵌套 div 尽管可以并且它可以工作 这是否意味着我不应该使用它 dls中嵌套div的标准是什么 此信息不正确 div元素被视为flow content https html spec whatwg
  • 如何通过 cpanel/whm API 创建数据库?

    我有 API 在专用服务器上为用户创建帐户 创建电子邮件地址也很好 但是当我尝试通过 API 创建 mysql 数据库时 我收到错误消息 访问被拒绝 即使访问是 root 我尝试使用的代码 xmlapi new xmlapi host xm
  • Asp.Net MVC 每个请求的唯一 ID

    在我们的 MVC 5 站点中 没有会话 我们需要为每个请求获取 生成一个唯一的 ID 这将用作记录请求中所有活动的 ID 有没有办法为请求分配 获取值以启用此功能 将其添加到请求项集合 odetocode com articles 111
  • iOS 7、iPhone、接近传感器

    这是一个简短的问题 但它困扰了我整整一个晚上 我这里有一些自己的应用程序 我只编写 Objective C 并且使用 ARC 如果我在 appDelegate 中编写 application didFinishLaunching UIDev
  • JavaScript 实例化

    你能在下面的例子中告诉我为什么吗sub instanceof Super is false function Super var obj prop1 value1 return obj var sub new Super sub insta
  • 带变量的 iframe 源

    我有一些问题 Is 与 HTMLIFrameElement 相同吗 Why 工作正常 但是 a document getElementsByTagName body 0 b document createElement iframe b s
  • 模块“PDO”已加载到未知行 0

    我将 nginx 与 php5 fpm 一起使用 由于某种原因 我的 php5 fpm 一直说 模块 PDO 已经加载到未知的第 0 行 老实说 我不知道为什么 该扩展不会加载到 php ini 内部 而是从 with config fil
  • 溢出隐藏隐藏下拉菜单,但将溢出隐藏隐藏在隐藏导航背景中

    首先 这是一个 js 小提琴 http jsfiddle net B6DSv http jsfiddle net B6DSv 我遇到的问题是我的 css nav overflow hidden THIS LINE background co
  • ASP.NET WebApi DateTimeOffset 序列化为 Json/JavaScript (angular2)

    我没有找到一个很好的方法来获取 JavaScript Angular2 的 DateTimeOffset 值 我正在使用 WebApi 5 2 3 和 angular2 在网上我看到日期如下 RecordModifiedAt 2016 03
  • OpenGL ES 2.0 中的光线拾取

    我正在尝试在 OpenGL ES 2 0 中实现光线拾取以确定是否已单击对象 到目前为止 我只是想检查是否已按下特定的三角形 我使用这个网站作为动力http android raypick blogspot ca 2012 04 first
  • CodeIgniter 仅允许在登录时访问某些控制器

    我有一些 CodeIgniter 控制器 只能由已登录的用户访问 即 this gt session gt userdata username 不为空 如果未经身份验证的人尝试访问所述控制器 他们应该收到 header location a
  • chromedriver:ubuntu 14.04 64 位上缺少各种 lib 依赖项

    所以我尝试运行从下载的 chromedriver 2 20 wget http chromedriver storage googleapis com 2 20 chromedriver linux64 zip 在我的 ubuntu 14
  • 如何向 UILabel 添加填充? [复制]

    这个问题在这里已经有答案了 UILabel 内的文本与左边框和右边框相冲突 有没有办法向 UILabel 添加一些内部填充 以便文本不会如此紧密地接触内部边框 只需调整标签的位置 我不知道任何其他方法 尽管其他人可能会 如果您对背景颜色有疑
  • OpenXML:Excel 中自动调整列宽

    我已经编写了使用 OpenXML 生成 Excel 文件的代码 下面是在 Excel 中生成列的代码 Worksheet worksheet new Worksheet Columns columns new Columns int num
  • HistoryRecord 的活动空闲超时?

    W ActivityManager 81 Launch timeout has expired giving up wake lock W ActivityManager 81 Activity idle timeout for Histo
  • log4j:记录包,但不包括其子包

    您好 我想排除某些子包被我的一个记录器记录 因为它们正在被另一个记录器记录 例如 com mysite app logger1 com mysite app news logger2 com mysite app events logger
  • 如何使用 ASP.NET MVC 将字典绑定到一组复选框?

    我的需要是 绑定 Dictionary
  • Maven 的 Jersey 问题 - Shade 插件

    我的问题非常类似于 仅当依赖项组装到单个 jar 中时才会抛出 Jersey 异常 https stackoverflow com questions 12611213 jersey exception only thrown when d