问题标签 [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.
wso2 - 使用 wso2 进行 XML 到 XML 的转换
我正在使用 wso2 esb 4.8.1。我正在尝试在 smooks 调解器的帮助下进行 xml 到 xml 的转换,但是当来自 wso2 的应用程序部署控制台的 try it 命中请求时,我得到以下异常,
seqence xml如下,
下面是smooks的配置文件,
我对代理服务的请求如附图所示。
java - 如何在 smooks 中定义 ISA-Segment?
我在 smooks 的帮助下在 java 程序中创建 ANSI.X12 消息。我正在使用 xml 文件(使用它们的http://www.milyn.org/schema/edi-message-mapping-1.2.xsd
)自己定义 X12 消息。其中大部分都运行良好,但我确实对 ISA 段有疑问。我将其定义为:
只要我插入正确长度的字符串,这主要是可用的。问题在于组件分隔符(^
在这种情况下)。ISA 段定义了哪些字符是用于分隔段、元素等的特殊字符。当我将"^"
值放入ComponentElementSeparator
时,它会转义(当然),因为它是一个特殊的字符,并且 smooks 不知道我的 ISA 段是特殊的ISA段。
我明白了
它应该在哪里
(注意?
在末尾的^
)。
到目前为止,我得到的唯一解决方法是将一些不同的字符放入medi:delimiters
诸如<medi:delimiters segment=" " field="*" component="<" sub-component="~" escape="?" />
,但是一旦该字符出现在某个地方的数据中,这势必会产生问题。这特别令人沮丧,因为消息甚至不使用任何必须分离的组件。
我在 smooks 的文档中找不到任何相关信息,但必须有某种方法可以做到这一点。毕竟,X12 是我所知道的两个原因之一,任何人都会首先使用 smooks(另一个是 EDIFACT)。
任何人都知道将 ISA 插入到我的 smooks 消息描述中的正确方法吗?
xml - edimap 文件的外观如何?Smooks 没有找到任何字段
我正在使用 Smooks 1.5 并尝试从 EDI 消息生成 XML 文件,我也尝试使用标准插件,它生成大量命名空间,我无法处理 FreeMaker 模板引擎的原因。这个例子没有 FreeMaker-Engine。
我有一个 REMADV 消息(格式 D.01B),如下所示:
我的问题是,我必须如何设置映射文件?我需要指定每一行还是只指定我感兴趣的字段就足够了?
我的映射文件:
-->smooks 配置如下所示:
错误消息始终相同:
看起来它没有找到任何匹配项有人知道为什么我在 EDI 消息中找不到任何字段吗?
雷托
xml - wso2 esb 将 un/edifact 96a EDI 转换为 XML
我几乎没有从 WSO2 ESB 开始,需要创建一个方案,允许我从通过 VFS(已启用)获得的 .edi 文件(96a)将其转换为 XML ......为此,我正在使用 Smooks 和UN / EDIFACT 执行解析。执行时会出现以下错误 WSO2:
Smooks的配置是:
我在 Java 应用程序中使用过同样的配置,而且我工作得很好。
此外,除了创建 CLASSPATH 甚至 build-classpath-directory 命令之外,我还尝试在 WSO2 中的 dropins 和 lib 目录中手动添加依赖项,但没有成功。
smooks - 使用 smooks 逐行读取平面文件
我有一个平面文件作为输入。我需要使用 Smooks 逐行读取平面文件。谁能给我建议或示例代码如何做到这一点。
wso2 - WSO2 没有从 Smooks 中捕获异常
我正在使用 WSO2 ESB 4.8.1,我正在使用 Smooks 1.5 读取固定长度的文件,然后将其解析为原始 XML。它工作正常,但我还必须实现它的特殊流程。
问题:
问题是,如果我弄乱了 smooks 配置文件,它会引发异常,但它没有被 WSO2 捕获。对于所有其他错误和异常,WSO2 启动故障序列,您可以获得 ERROR_MESSAGE、ERROR_DETAIL 属性,但在这种情况下,它只是终止流程并且服务不会进入故障序列。因此,除非服务进入故障序列,否则我无能为力。
示例文件:
我用来创建异常的 Smooks-config 文件:
wso2 日志文件中的异常:
注意: Smooks 给出了正确的异常,但我不明白为什么 WSO2 esb 服务没有进入故障序列并刚刚终止......?这是smooks的一些行为吗..?
java - 使用 Smooks 或其他方法按元素拆分 XML 文件
我正在尝试做一些我认为是基本任务的事情。
我追求一个简单而整洁的Java 解决方案,它可以按元素拆分 XML 内容。我不想将整个内容加载到内存中(即我想流式传输元素),我想掌握每个元素的字符串表示形式,以便将其发送到我想要的任何地方。
我使用 StAX的明显不成功的拉解析尝试:
我也尝试过Smooks,但没有成功。特别是,此处提供的示例http://www.smooks.org/mediawiki/index.php?title=V1.4:Smooks_v1.4_User_Guide#Basic_Splitting_and_Routing并没有提供获取字符串 XML 的简洁方法元素。如果您想将 XML 元素发送到文件、数据库或 JMS 队列,这一切都很容易和顺利……但如果我想接触 String XML,那就不行了。
我非常沮丧,我开始认为编写自己的基于 SAX 的解决方案可能会更省力。谁能证明我错了?
windows - Smooks 在 Windows 中被 Java 锁定的 JAR
我目前在 Mule ESB 中使用自定义的 Smooks 变压器。此转换器使用的一些类在应用程序关闭时保留在内存中(org.milyn.cdr.SmooksResourceConfiguration、org.milyn.xml.Namespace$SmooksNamespaceMappings)。类所属的 jar 被锁定(milyn-smooks-core-1.5.2.jar),并且在取消部署时,该 jar 不会被 mule 删除(这只发生在 Windows 中)。
我尝试使用 spring destroy 方法来清理 Smooks 对象,并且我还尝试在启动时将 smooks 对象放在注册表中并删除,但都没有解决问题。
唯一有效的解决方法是在 ${MULE_HOME}/lib/user 文件夹中复制与 smooks 相关的 jar(milyn-commons、milyn-smooks-core、milyn-smooks-template)。
这里的问题似乎与 Smooks 而不是 Mule 有关。也许 Smooks 是默认缓存对象还是不是流?
对此的任何帮助将不胜感激。
groovy - 使用 Smooks 或 Groovy 和 Java Camel 来拆分/转换 XML
Camel 版本 2.14 Smooks 版本 1.5.1
我收到一条消息,我想拆分和转换,但我需要父级的id。所以我考虑使用 Smooks,拆分消息,转换并将每个输出发送到队列。它将使用 freemarker 模板进行转换。
有很多例子。但是例如骆驼示例不起作用,因为“java.lang.ClassNotFoundException:org.apache.camel.component.ResourceBasedComponent”是一个已知问题。
另一种方法是使用groovy进行转换?
那么,如何解决这个最简单的问题呢?
java - 当记录中遇到双引号时,Smooks 无法返回逗号分隔值
我有一个 CSV 文件,我在 smooksConfig 文件中指定“逗号”作为分隔符。但是,只要其中一个值有双引号(例如 21 英寸电视,10 英寸屏幕),如果我的记录中没有双引号,smooks 就无法检索值,smooks 工作得很好。
谢谢。