IBM Mobile First 7.1:多部分/相关内容类型和XSL转换

时间:2016-10-03 08:39:55

标签: ibm-mobilefirst multipart worklight-adapters mobilefirst-adapters

我需要从HTTP适配器调用具有multipart/related内容类型的SOAP服务。

如果我将此对象用作WL.Server.invokeHttp参数

{
    method : 'post',
    returnedContentType : 'xml',
    returnedContentEncoding : 'utf-8',
    path : servicePath,
    body : {
        content : MY_REQUEST,
        contentType : "text/xml; charset=utf-8"
    },
    transformation: {
            type: 'xslFile',
            xslFile: 'myXsl.xsl'
    }
}; 

我收到了这个错误:

"Runtime: Failed to read the HTTP response to: /MyService 
\njava.lang.IllegalArgumentException: Http content type 'multipart/related' not supported. 
Supported types are: [json, css, csv, javascript, plain, xml, html]" 

所以我修改了参数returnedContentType: 'plain'以获得结果。现在响应如下:

{
"isSuccessful": true,
"errors": [],
"warnings": [],
"info": [],
"text": "--uuid:85c87f37-9436-41d1-94d4-0b944c3618b1\nContent-Type: application/xop+xml; charset=UTF-8; type=\"text/xml\";\nContent-Transfer-Encoding: binary\nContent-ID: <root.message@cxf.apache.org>\n\n 

MY SOAP RESPONSE 

\n--uuid:85c87f37-9436-41d1-94d4-0b944c3618b1--",
"responseHeaders": {
    ...
    "Content-Type": "multipart/related; type=\"application/xop+xml\"; boundary=\"uuid:85c87f37-9436-41d1-94d4-0b944c3618b1\"; start=\"<root.message@cxf.apache.org>\"; start-info=\"text/xml\""
    ...
}
}

但是没有执行xsl转换。 通过对text参数进行一些字符串操作,我可以将SOAP响应作为字符串获取,但是我没有找到一种方法(某些API)来手动调用XSL转换来获取json。

1 个答案:

答案 0 :(得分:0)

XSL转换仅在服务器端完成(没有手动激活&#39;)。如果你仍然需要进行XSL转换,你可以做的就是通过JavaScript运行XSL。例如,请参阅:how to run XSL file using JavaScript / HTML file