Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 扩展JBoss数据Virt-ws-translator以处理JSONP_Java_Jsonp_Redhat Datavirt - Fatal编程技术网

Java 扩展JBoss数据Virt-ws-translator以处理JSONP

Java 扩展JBoss数据Virt-ws-translator以处理JSONP,java,jsonp,redhat-datavirt,Java,Jsonp,Redhat Datavirt,扩展org.teid.translator.ws以连接到返回JSONP(其媒体类型通常为application/javascript)的Web服务的最佳方式是什么?现有ws-translator只能读取JSON或XML。一般来说,翻译器的设计是否有助于注入转换逻辑来处理任何网页结构/格式(如JSONP、纯文本、html等) 对于JSONP,我倾向于创建自己的org.teid.core.types.InputStreamFactory实现,比如com.acme.JsonpToJsonInputSt

扩展org.teid.translator.ws以连接到返回JSONP(其媒体类型通常为application/javascript)的Web服务的最佳方式是什么?现有ws-translator只能读取JSON或XML。一般来说,翻译器的设计是否有助于注入转换逻辑来处理任何网页结构/格式(如JSONP、纯文本、html等)

对于JSONP,我倾向于创建自己的org.teid.core.types.InputStreamFactory实现,比如com.acme.JsonpToJsonInputStreamFactory,在其中我定义了自己的JsonpToJsonReaderInputStream(扩展ReaderInputStream),它跳过了领先的

randomFunctionName(
拖尾

)
,并修改ClobInputStreamFactory.getInputStream以返回该值,而不是ReaderInputStream。然后替换两个实例

ds = new InputStreamFactory.ClobInputStreamFactory(...);
在translator-ws-jsonp.BinaryWSProcedureExecution(其中translator-ws-jsonp基于translator-ws)中


WS-translator以Blob形式返回结果,如何解压缩结果取决于您。依我看,你真的不需要再做一个翻译

目前,JDV中的典型用例是读取blob并使用JSONTOXML函数将其转换为XML,这样就可以使用XMLTABLE之类的结构将结果解析为表格结构。所以,您可以编写一个像JSONPTOJSON这样的UDF,它与上面提到的一样,然后使用JSONTOXML(JSONPTOJSON(blob))作为XMLTABLE的输入

ds = new JsonpToJsonInputStreamFactory.ClobInputStreamFactory(...);