107.3. 使用

要使用数据格式,只需实例化实例,并在路由构建器中调用 marshal 或 unmarshal 操作:

  FlatpackDataFormat fp = new FlatpackDataFormat();
  fp.setDefinition(new ClassPathResource("INVENTORY-Delimited.pzmap.xml"));
  ...
  from("file:order/in").unmarshal(df).to("seda:queue:neworder");

上面的示例将使用 Flatpack 配置文件 INVENTORY-Delimited.pzmap.xmlorder/in 文件夹中读取文件,并解压缩输入。其结果是一个 DataSetList 对象,它存储在 SEDA 队列中。

FlatpackDataFormat df = new FlatpackDataFormat();
df.setDefinition(new ClassPathResource("PEOPLE-FixedLength.pzmap.xml"));
df.setFixed(true);
df.setIgnoreFirstRecord(false);

from("seda:people").marshal(df).convertBodyTo(String.class).to("jms:queue:people");

在上面的代码中,我们将对象表示的数据汇总为 映射 的行列表。Map 包含键和对应值的列名称的行。这个结构可以在 Java 代码中创建,例如处理器。我们根据 Flatpack 格式对数据进行汇总,并将结果转换为 String 对象,并将它存储在 JMS 队列中。