问题标签 [smooks]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
642 浏览

java - 如何实现 list.list 在 smooks 中列出副本

我是smooks的初学者。我面临一个问题。这是java-java转换。我有一个列表,其中我有一个包含 2 个对象的内部列表。如何实现 list.list 以在 smooks 中列出副本?

0 投票
2 回答
1113 浏览

xml - HashMap 和 smooks


我需要将 Map 转换为 xml,然后使用 smooks 将其转换回 Map。该地图可以包含复杂的值(例如:列表),如何使用 smooks 来实现?
前任:

where<a><b>tags 指的是现有的 A 和 B 模型

谢谢,

0 投票
1 回答
8072 浏览

edi - 烟雾问题

我目前正在评估 smooks (www.smooks.org)。它看起来就像我们需要的一样,但我在让一个简单的例子工作时遇到了问题。

我有一个 ant 脚本,它可以下载我所有的依赖项,包括 EDIFACT 消息的映射和绑定 jar。

我正在尝试使用他们的 EJC 将简单的 EDIFACT APERAK 消息转换为 Java(我正在使用 JavaSE 进行这个小测试)。转换失败,但出现了一些不期望出现的块(见下文)。所以我想知道我是否缺少一些配置(注意日志输出中的前几行)。

有人与 Smooks 的 EJC 合作过吗?我怎样才能获得有关它抱怨的线路的更多信息?

所以这是代码:

当我运行它时,我得到了这个异常

实际的 EDIFACT 消息相当简单:

当我删除前导 UNA 和 UNB 片段时,它会出现以下异常:([APERAK][D:00B:UN]。必须至少有 1 个片段 [BGM] 实例)。有一个 BGM 部分,所以我不确定它为什么抱怨。

更新: 当我从消息中删除回车时

它工作正常。但是我如何让 smooks 接受回车和空格以及两个主要的 UNA/UNB 段?我可能跳过了消息处理 smooks 通常做的某些部分。

更新 2: 发现支持 UNA/UNB 段(我的错误),但我仍然遇到回车问题。Renat 建议在 EDIParser 上使用“ignoreNewLines”选项。我已经尝试过了,但似乎没有什么不同。我也试过用这个来配置smooks:

再次没有成功。

我觉得 D00AInterchangeFactory (或您使用的每个版本)以不同方式配置其 EDIParser 并且忽略了 ignoreNewLines 。

有没有办法获得 InterchangeFactory 正在使用的 EDIParser?

0 投票
1 回答
124 浏览

java - 如何使用指定的 Schema 将 Java 类序列化为 XML

我有一个 Joo.java 类,我想使用模式 JooSchema.xsd 将其序列化为 XML。

Smooks API 可以吗,怎么做?

0 投票
1 回答
2507 浏览

java - 使用 apache camel、smooks 和 flatpack

我正在使用 camel 和 smooks 编写路线,生产者作为 JPA 存储库,生成 JPA 对象列表,我需要将其作为固定宽度文件发送到 sftp 服务器。

这是我认为发生这种情况所必需的

  1. 使用 JPA 生成对象列表的存储库(我有这个)
  2. 一个 smooks 到 flatpack 的映射,它采用上述列表的 xml 版本,并将其转换为固定宽度的文件
  3. 以存储库开始并以通过 sftp 发送的文件结束的骆驼路线:

这是我的代码:

但是,当我运行单元测试时,出现以下错误:

我认为这意味着 flatpack 不知道如何处理列表,并且需要在每个对象的基础上工作。

因此,我正在寻找的是类似于 freemaker 模板的 smooks 映射,但我想使用 flatpack 的列定义而不是 freemaker 模板:

解决此问题的最佳方法是什么?没有太多可用的文档,我已经搜索了好几个星期

谢谢

山姆

0 投票
1 回答
4223 浏览

java - 以编程方式将 csv 映射到 smooks 中的 java 无法处理空 Double

我正在使用 smooks 库快速轻松地解析 csv 文件,以编程方式将它们映射到 POJO。但是我在处理 POJO 的 Double 属性上的空字段时遇到了麻烦。例如,java 对象有:

smooks 映射如下:

但是,当处理 c_06、c_07、c_08 和 c_09 的空值(不仅仅是零,而是空)的文件时,恰好是 Double 值,即使在 POJO 的属性设置器上设置函数重载也不起作用并抛出

有没有人如何避免这个陷阱保持程序化方法?

----------------EDIT----------------: 我在 csv-to-java 的 smooks 示例中对此进行了测试,正如汤姆所说,使用配置 xml。我有这个并且错误重复:

该文件是

(注意空的年龄)。而java主类是

我发现这是汤姆的例子(!!!),所以我问:如何将 csv 字段映射到 POJO 属性<jb:bean>

---------------- EDIT2 ----------------: 我尝试了在 codehaus 的 JIRA 线程中找到的一些东西,我得到了以下结果配置文件:

它使用带有空整数(年龄)的CSV工作,但是当我将javabean xsd更新到1.1以上时它失败了。抛出错误

我错过了什么?

0 投票
2 回答
3074 浏览

java - 使用 Smooks 读取 CSV

使用 Smooks ( 1.4) 读取 CSV 并将其转换为PersonPOJO。

CSV 由每行以逗号分隔的记录组成,每条记录都有用竖线分隔的字段:

史密斯|约翰|45|男|约翰尼|JSmith|JSmizzle,

史密斯|简|43|女|简

等等。因此,每条线代表一个不同的人来创建。首先,一个 POJO:

我的问题是List别名。以下是我的 XML 配置中的重要部分:

所以我窒息的地方是createOnElement正确配置aliasesArrayList 以及每个alias字符串。在此先感谢任何可以将我推向正确方向的人!

0 投票
1 回答
7887 浏览

java - ETL 工具:GUI 与框架

我听说“ETL 工具”这个词最近使用了很多,并开始深入了解它们。我在这里找到了一个很棒的 Java 开源 ETL 工具列表,并开始阅读它们。

但这让我真的很困惑。

大多数这些工具(CloverETL、Pentaho 等)都是 GUI 工具。其中一些,例如 Smooks,是纯 Java 框架。我想这是有道理的:一些 ETL 用户可能不是技术人员和/或想使用 GUI 工具来设置转换。其他用户将是希望利用这些工具的原始 ETL 功能的开发人员。

我的问题:这些 GUI 工具比纯 Java 框架有什么好处(附加功能等),反之亦然?诸如 CloverETL 和 Pentaho 之类的“主要参与者”GUI 工具——它们自称是 GUI 工具——是否也有 Java API,我可以用它们(以编程方式)完成相同的事情?还是它们是纯 GUI 工具?我在任何地方都找不到 Java Docs(对于任何一个)。

0 投票
1 回答
1401 浏览

java - 无法使 Smooks EDI 与 Camel 一起使用

想法是从文件系统读取edi文件并将其传输到XML。我尝试了从 smooks 下载的示例,它工作正常。但是当我开始使用来自 Camel 处理器的相同代码(和 edi 文件)时,我得到了一个空指针。

代码

日志

0 投票
1 回答
1601 浏览

java - 使用 smooks 将 EDI 消息映射到 XML 时遇到问题

我想使用 Smooks 将以下 ORDERS EDI 消息映射到 xml

  1. 下面的 smooks edimap 配置中的(基于上述消息)字段组件子组件的值应该是什么?

    <medi:edimap xmlns:medi="http://www.milyn.org/schema/edi-message-mapping-1.0.xsd">
    <medi:description name="Purchase Order" version="1.0" /> < medi:delimiters segment="" field="+" component="'" sub-component="~" />
    </medi:edimap>

  2. 我可以从哪里获得所有 EDI 采购订单字段的描述以及示例?

谢谢你。