Apache camel 从blueprint文件到java DSL Camel Routebuilder的属性注入不起作用

Apache camel 从blueprint文件到java DSL Camel Routebuilder的属性注入不起作用,apache-camel,blueprint-osgi,Apache Camel,Blueprint Osgi,我在blueprint-bean.xml中以以下方式定义一个列表 <cm:default-properties> <cm:property name="test-list"> <list> <value type="java.lang.String"> "test 1" </value> <value type ="java.lang.S

我在blueprint-bean.xml中以以下方式定义一个列表

<cm:default-properties>
   <cm:property name="test-list">
            <list>
                <value type="java.lang.String"> "test 1" </value>
                <value type ="java.lang.String"> "test 2." </value>
                <value type ="java.lang.String"> "test 3." </value>
            </list>
</cm:property>
...
因此,列表似乎在某个点转换为字符串,然后在注入点无法转换回列表

我是否以错误的方式使用注释,或者是否有其他方式将列表属性注入我的JDSL路由


注释适用于除列表之外的所有其他属性。

我还没有看到您可以插入这样的列表。试着问一下骆驼gitterhub。从您的错误消息中,它似乎不是在检索列表,而是一个简单的字符串。在我看来,它实际上是一个数组。您可以尝试更改为
@PropertyInject(“测试列表”)字符串[]测试列表
然后,如果您真的需要它成为一个列表,那么转换它应该是最小的努力。我应该澄清一下,同时我发现PropertyObject注释总是返回一个字符串,这是该方法的预期行为。我仍然很好奇是否有任何方法可以直接从blueprint注入一个列表,或者是否必须转换手动检索的字符串或字符串[]数组。
public class TestRoute extends RouteBuilder {

    @PropertyInject("testInt") int rate;
    @PropertyInject("test-list")   List<String> testlist;
...
No type converter available to convert from type: java.lang.String to the required type: java.util.List with value [ "test 1." ,  "test 2." ,  "test 3." ]