繁体   English   中英

如何通过OSB(Oracle服务总线)将BLOB类型的数据(ByteArray)传递给DB(具有BLOB类型的列的数据库中的表)

[英]How can I pass a BLOB type data (ByteArray) through OSB(Oracle Service Bus) to DB(Table in a Data Base with BLOB type Column)

我有一个Java标注 ,它返回一个Java ByteArray 我想将此ByteArray传递到数据库中具有BLOB数据类型的列的表,而无需对ByteArray进行任何修改。 我使用OSB 11g作为中间件。 因此,javacallout在OSB中完成,我正在使用数据库适配器连接到数据库并传递此值。

在此输入图像描述

FYI

我进行了一些研究,发现OSB将ByteArray与自身存储在一起,并将引用发送给DB,但我不希望这样做。 我想将BYTEARRAY传递给我的数据库表。

简单来说:

通过OSB将ByteArray传递到oracle DB表中的BLOB类型列

我不想要这些解决方案(我已经尝试过): - https://blogs.oracle.com/ateamsoab2b/entry/an_example_of_how_to

我做了类似的事情,但我正在使用Java Callout来做一些OSB不支持的事情,即一个不会为其编写适配器的有线协议。 我想问一下为什么要使用Java Callout来执行JDBC操作,但这可能不重要。 无论如何,如果您的代理服务是基于SOAP的代理服务,那么您将把它作为带有一堆数据的CDATA标记返回,这是一个客户端将随后调用的引用标识(MTOM / XOP) ),或者最后,XML标记中的Base64编码字符串。

我最终做的是类似于XOP / MTOM的支持。 您查看了哪些文档? 根据我自己的经验,我能够根据以下文档使工作正常:

14.20在控制台中添加Java标注操作 (解释可以传入的有限类型,然后 java标注返回到您的服务)

如果您使用引用,则客户端更有可能需要单独请求该二进制文件。 也就是说,有很多关于发送MTOM请求的文档。 我对它没有多少经验。

祝你好运。 我有一些头痛与OSB合作操纵这些东西,但是一旦我了解了Java-OSB边界点,它就会变得容易一些。

编写一个java代码并执行java调用,并将字节数组引用转换为所需的java对象。 它将获取引用并返回您可以存储在BLOB中的java对象

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM