我正在尝试将pojo转换为骆驼中的csv。这是模型
@CsvRecord(separator = ";")
public class Model {
@DataField(pos = 1)
private String t;
@DataField(pos = 2)
private List<Integer> list;
}
应生成的CSV是A; 1; 2; 3
我在Camel中为同一个(列表)定义了一个自定义格式工厂。这是片段
public class ListFormatFactory extends AbstractFormatFactory {
private final ListFormat listFormat = new ListFormat();
{
supportedClasses.add(List.class);
supportedClasses.add(ArrayList.class);
}
@Override
public Format<?> build(FormattingOptions formattingOptions) {
return listFormat;
}
private static class ListFormat implements Format<List> {
@Override
public String format(List object) throws Exception {
return Arrays.toString(object.toArray());
}
public List parse(String string) throws Exception {
return Arrays.asList(string.split(";"));
}
}
}
我已使用此
注册了此格式工厂DefaultFactoryRegistry defaultFactoryRegistry = new DefaultFactoryRegistry();
defaultFactoryRegistry.register(new ListFormatFactory());
但我仍然得到同样的错误。有人可以帮我吗?
答案 0 :(得分:0)
我认为您需要在Jndi
中绑定defaultFactoryRegistry答案 1 :(得分:0)
在我们的例子中是:
java.lang.IllegalArgumentException: Can not findForFormattingOptions a suitable formatter for the type: java.lang.String
这是由 Camel 未正确启动造成的。重新启动应用程序解决了问题。这是 Quarkus 应用程序。