编程语言
首页 > 编程语言> > 2021-09-26-关于如何把使用nxsd组件的OSB代码转化为使用JavaCallout组件的代码

2021-09-26-关于如何把使用nxsd组件的OSB代码转化为使用JavaCallout组件的代码

作者:互联网

关于如何把使用nxsd组件的OSB代码转化为使用JavaCallout组件的代码

首先要搞明白一件事,nxsd转化的数据是二进制的数据,而JavaCallout转换的是String(视情况而定)的类型的。
也就表示,在我们使用nxsd 的时候,虽然我们操作的数据看起来是字符串,但其实是二进制的数据。
这就说明我们这两种方式在同一流程里面是不可以混用的,混用会造成报错,但是流程 正常的这种错误。

如何替换

在这里插入图片描述
为什么要替换的是body节点的内容,我认为是在转换或者去映射,再或者是数据提交的时候,我们一般都是使用body的,而我们单纯的使用属性的话,会出现一些bug,也就是出错,这个可能是osb上面自带的问题。

自己编写transf文件

先观察transf的文件的结构

在这里插入图片描述
左边的是sources,也就是源文件,就是我们需要转换的数据
右边的叫Targets,也就是目标文件,就是转换后的数据格式。

打开source以后会看到我们的源代码,我们可以在这里修改,或者直接连线。
在这里插入图片描述

编写xsd文件

sources和Target文件分别对应两个xsd文件,关于这两个文件如何写,我们下面就来看
这两个文件的目的就是为了区分数据类型,然后再transf中进行相互之间的映射,
我们今天写成java之后,也是要用到transf来进行映射的,但是与之前不同的是我们不需要使用命名空间,所以要在创建transf的时候删掉节点下的所有命名空间。

修改前
在这里插入图片描述

修改后
在这里插入图片描述
xsd文件编写,可以直接使用nxsd 的模板,然后复制里面的内容来进行快速生成。

修改前:
在这里插入图片描述

修改后:
在这里插入图片描述
两个xsd文件是一样的哦。

转换

在使用transf之前,要把String转换成xml,且表头的节点一定要是和transf里面的获取数据的时候的那个节点一样才可以,一般是req或者resp。
转换数据的时候记得熟练使用replace方法和反编译,以及序列化的方法。

标签:文件,26,转换,代码,nxsd,xsd,使用,组件,transf
来源: https://blog.csdn.net/h22407/article/details/120499203