【问题标题】:Camel: how do Type Converters load?骆驼:类型转换器如何加载?
【发布时间】:2016-01-14 16:54:39
【问题描述】:

当通过mvn compile exec:java 运行我的应用程序时,它会说:

[main] DefaultTypeConverter           INFO  Loaded 199 type converters 

当运行java -jar(使用maven-shade-plugin 制作的uberjar)时,它会说:

[main] DefaultTypeConverter           INFO  Loaded 182 type converters

检查差异(199 比 182)。因此,我的代码在某些情况下无法按预期工作。

使用骆驼2.16.1。如果需要完整的依赖项列表,请告诉我,我会更新。

更新 1 添加解决

<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
  <resource>META-INF/services/org/apache/camel/TypeConverter</resource>
</transformer>

到我的maven-shade-plugin 配置。

【问题讨论】:

  • 类型转换器是通过Service Loader 机制发现的。能否请您发布maven-shade-plugin 的配置和mvn dependency:tree 的输出以便我分析?我的怀疑是某些 Camel 依赖项没有被打包,例如runtimeprovided 依赖项。

标签: maven apache-camel maven-3 maven-shade-plugin uberjar


【解决方案1】:

添加解决

<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
  <resource>META-INF/services/org/apache/camel/TypeConverter</resource>
</transformer>

到我的maven-shade-plugin 配置。

更多详情:How to package an Apache CXF application into a monolithic JAR with the Maven "shade" plugin

【讨论】:

    猜你喜欢
    • 2019-02-22
    • 2014-04-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多