apigee策略错误 - 无法将java.lang.String强制转换为com.apigee.flow.message.Message

use*_*811 1 xslt apigee

我试图将JSON目标终点的响应转换为soap消息.我在帖子流程中有2条政策.

  1. JSONTOXML- 如果我禁用,xsltransform我会看到xml结果,所以这个工作.
  2. xsltransform - 这只是指向我的xsltransform文件,该文件的模板和动态内容应该来自步骤1中的xml.

源和输出都设置为"响应",但看起来它在步骤2中无法投射.我应该如何使第2步拿起xml并应用xsl?我怎么能这样做?谢谢

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<JSONToXML async="false" continueOnError="false" enabled="true" name="jsontoxml-2">
    <DisplayName>JSONtoXML-2</DisplayName>
    <FaultRules/>
    <Properties/>
    <Options>
        <NullValue>NULL</NullValue>
        <NamespaceBlockName>#namespaces</NamespaceBlockName>
        <DefaultNamespaceNodeName>$default</DefaultNamespaceNodeName>
        <NamespaceSeparator>:</NamespaceSeparator>
        <TextNodeName>#text</TextNodeName>
        <AttributeBlockName>#attrs</AttributeBlockName>
        <AttributePrefix>@</AttributePrefix>
        <InvalidCharsReplacement>_</InvalidCharsReplacement>
        <ObjectRootElementName>Root</ObjectRootElementName>
        <ArrayRootElementName>Array</ArrayRootElementName>
        <ArrayItemElementName>Item</ArrayItemElementName>
    </Options>
    <OutputVariable>response</OutputVariable>
    <Source>response</Source>
</JSONToXML>

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XSL async="false" continueOnError="false" enabled="true" name="xsltransform-1">
    <DisplayName>XSLTransform-1</DisplayName>
    <FaultRules/>
    <Properties/>
    <Source>response</Source>
    <ResourceURL>xsl://xsltransform-1</ResourceURL>
    <Parameters ignoreUnresolvedVariables="true"/>
    <OutputVariable>response</OutputVariable>
</XSL>
Run Code Online (Sandbox Code Playgroud)

Ran*_*ton 5

OutputVariable不能设置为'response'.

尝试删除"OutputVariable"行,或将其留空.删除它应该导致输出转到响应有效负载.

换句话说,试试这个:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XSL async="false" continueOnError="false" enabled="true" name="xsltransform-1">
    <DisplayName>XSLTransform-1</DisplayName>
    <FaultRules/>
    <Properties/>
    <Source>response</Source>
    <ResourceURL>xsl://xsltransform-1</ResourceURL>
    <Parameters ignoreUnresolvedVariables="true"/>
</XSL>
Run Code Online (Sandbox Code Playgroud)