我创建了一个具有以下结构的新转换器:
package com.mycompany;
@Converter
public final class MyCustomConverter {
@Converter
public static TypeB convert(TypeA typeA) {
// do the conversion
}
}
我还在我的src/main/java/resources
文件夹中创建了以下软件包META-INF.services.org.apache.camel
,并在TypeConverter
文件中创建了一个文件:
com.mycompany
在我TypeA
的路线中,我得到了:
<convertBodyTo type="com.mycompany.TypeB" />
然而我的测试总是无法获取文件,因此无法找到转换器,除了:
引起:org.apache.camel.NoTypeConversionAvailableException:没有 类型转换器可用于从类型转换为:com.mycompany.TypeA到 所需类型:com.mycompany.TypeB,其值为TypeA [value1 =“blah”]
我是否打算做其他事来让我的测试拿起TypeConverter文件?当然将它放在具有确切结构的资源文件夹中会将其添加到类路径中,因此可以访问它。
答案 0 :(得分:3)
建议在TypeConverter文件中列出所有类型对流器的FQN,例如
com.mycompany
应该是
com.mycompany.MyCustomConverter
这也是我们在此页面上所说的内容:http://camel.apache.org/type-converter.html
您是否可以在生成的JAR文件内部检查META-INF / services / org / apache / camel目录,并且TypeConverter文件存在(并且它不在某些目录中,如META- INF / org.apache.camel)。
您使用的运行时环境是什么?你运行Camel独立,Tomcat,OSGi还是别的什么?