現在、Apigee と Apigee ハイブリッドのドキュメントを表示しています。
Apigee Edge のドキュメントを表示する
NothingToExtract
エラー メッセージ
Apigee UI または API を使用した API プロキシのデプロイに失敗すると、次のエラー メッセージが表示されます。
Error Saving Revision [revision_number] ExtractVariables [policy_name]: at least one of URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload is mandatory. Revision:[revision_number]; APIProxy:[proxy_name]; Organization:[org_name]; Environment:[env_name].
エラー メッセージの例
Error Saving Revision 2
ExtractVariables EV-XML-Age: at least one of URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload is mandatory.
スクリーン ショットの例
原因
Extract Variables ポリシーに URIPath
、QueryParam
、Header
、FormParam
、XMLPayload
、JSONPayload
のいずれの要素も含まれていない場合、抽出するものがないため、API プロキシのデプロイは失敗します。
エラー メッセージに示されているように、Extract Variables ポリシーには少なくとも URIPath
、QueryParam
、Header
、FormParam
、XMLPayload
、JSONPayload
のいずれかの要素が含まれている必要があります。
診断
エラー メッセージで指定されている Extract Variables ポリシーを調べます。ポリシーに URIPath
、QueryParam
、Header
、FormParam
、XMLPayload
、JSONPayload
の要素が 1 つもない場合は、それがエラーの原因です。たとえば、次の Extract Variables ポリシーには上記の要素がありません。
<ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age">
<DisplayName>EV-XML-Age</DisplayName>
<Properties/>
</ExtractVariables>
Extract Variables ポリシーに必須の要素がないため、API プロキシのデプロイは失敗します。
解決策
Extract Variables ポリシーに、必須の要素である URIPath
、QueryParam
、Header
、FormParam
、XMLPayload
、JSONPayload
のいずれかが含まれていることを確認します。次に例を示します。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age">
<DisplayName>EV-XML-Age</DisplayName>
<Properties/>
<Source>request</Source>
<XMLPayload>
<Namespaces/>
<Variable name="age" type="integer">
<XPath>/age</XPath>
</Variable>
</XMLPayload>
</ExtractVariables>
NONEmptyPrefixMappedToEmptyURI
エラー メッセージ
Apigee UI または API を使用した API プロキシのデプロイに失敗すると、次のエラー メッセージが表示されます。
Error Saving Revision [revision_number] ExtractVariables [policy_name]: Non-empty prefix [prefix_name] cannot be mapped to empty uri.
エラー メッセージの例
Error Saving Revision 3
ExtractVariables EV-XML-Age: Non-empty prefix apigee cannot be mapped to empty uri.
スクリーン ショットの例
原因
このエラーは、Extract Variables ポリシーで <XMLPayload>
要素の下の <Namespace>
要素に接頭辞は定義されているが URI が定義されていない場合に発生します。
診断
エラーが発生した Extract Variables ポリシーと接頭辞の名前を特定します。どちらの項目もエラー メッセージで確認できます。たとえば次のエラーでは、ポリシー名は
EV-XML-Age
、接頭辞はapigee
です。ExtractVariables EV-XML-Age: Non-empty prefix apigee cannot be mapped to empty uri.
失敗した Extract Variables ポリシーの XML で、
<XMLPayload>
要素の下にある<Namespace>
要素に設定された接頭辞の名前が、エラー メッセージ(上の手順 1)で特定した接頭辞の名前と一致することを確認します。たとえば、次のポリシーは<Namespace>
要素でapigee
という接頭辞を指定しており、これはエラー メッセージの内容と一致します。<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age"> <DisplayName>EV-XML-Age</DisplayName> <Source clearPayload="false">request</Source> <XMLPayload stopPayloadProcessing="false"> <Namespaces> <Namespace prefix="apigee"></Namespace> <Namespace prefix="gmail">http://mail.google.com</Namespace> </Namespaces> <Variable name="legName" type="string"> <XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</Xpath> </Variable> </XMLPayload> </ExtractVariables>
手順 2 で特定した固有の接頭辞を持つ
<Namespace>
要素に有効な URI があるかどうかを確認します。URI がない場合は、それがエラーの原因です。上記の Extract Variables ポリシーの例では、接頭辞
apigee
を持つ<Namespace>
要素に対応する URI がないため、次のエラーが発生します。ExtractVariables EV-XML-Age: Non-empty prefix apigee cannot be mapped to empty uri.
解決策
Extract Variables ポリシーに、接頭辞が定義されたすべての <Namespace>
要素に対応する URI が存在するようにします。次に例を示します。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age">
<DisplayName>EV-XML-Age</DisplayName>
<Source clearPayload="false">request</Source>
<XMLPayload stopPayloadProcessing="false">
<Namespaces>
<Namespace prefix="apigee">http://www.apigee.com</Namespace>
<Namespace prefix="gmail">http://mail.google.com</Namespace>
</Namespaces>
<Variable name="legName" type="string">
<XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</Xpath>
</Variable>
</XMLPayload>
</ExtractVariables>
DuplicatePrefix
エラー メッセージ
Apigee UI または API を使用した API プロキシのデプロイに失敗すると、次のエラー メッセージが表示されます。
Error Saving Revision [revision_number] ExtractVariables [policy_name]: Duplicate prefix [prefix_name].
エラー メッセージの例
Error Saving Revision 2
ExtractVariables EV-XML-Age: Duplicate prefix apigee.
スクリーン ショットの例
原因
このエラーは、Extract Variables ポリシーで <XMLPayload>
要素の下の <Namespace>
要素に同じ接頭辞が複数回定義されている場合に発生します。
たとえば、次のように接頭辞 apigee
が 2 回定義されているとエラーが発生します。
<Namespace prefix="apigee">http://www.apigee.com</Namespace>
<Namespace prefix="apigee">http://www.apigee.com</Namespace>
診断
エラーが発生した Extract Variables ポリシーと接頭辞の名前を特定します。どちらの項目もエラー メッセージで確認できます。たとえば次のエラーでは、ポリシー名は
EV-XML-Age
、接頭辞はapigee
です。ExtractVariables EV-XML-Age: Duplicate prefix apigee.
失敗した Extract Variables ポリシーの XML で、
<XMLPayload>
要素の下にある<Namespace>
要素に設定された接頭辞の名前が、エラー メッセージ(上の手順 1)で特定した接頭辞の名前と一致することを確認します。たとえば、次のポリシーは<Namespace>
要素でapigee
という接頭辞を指定しており、これはエラー メッセージの内容と一致します。<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age"> <DisplayName>EV-XML-Age</DisplayName> <Source clearPayload="false">request</Source> <XMLPayload stopPayloadProcessing="false"> <Namespaces> <Namespace prefix="gmail">http://mail.google.com</Namespace> <Namespace prefix="apigee">http://www.apigee.com</Namespace> <Namespace prefix="apigee">http://www.apigee.com</Namespace> </Namespaces> <Variable name="legName" type="string <XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</XPath> </Variable> </XMLPayload> </ExtractVariables>
手順 2 で特定した固有の接頭辞を持つ
<Namespace>
要素が複数回定義されていないか確認します。複数回定義されている場合は、それがエラーの原因です。上記の Extract Variables ポリシーの例では、接頭辞
apigee
を持つ<Namespace>
要素が 2 回定義されているため、次のエラーが発生します。ExtractVariables EV-XML-Age: Duplicate prefix apigee.
解決策
Extract Variables ポリシーの <Namespace>
要素の各接頭辞に対して定義が 1 つだけ存在するようにします。次に例を示します。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age">
<DisplayName>EV-XML-Age</DisplayName>
<Source clearPayload="false">request</Source>
<XMLPayload stopPayloadProcessing="false">
<Namespaces>
<Namespace prefix="apigee">http://www.apigee.com</Namespace>
<Namespace prefix="gmail">http://mail.google.com</Namespace>
</Namespaces>
<Variable name="legName" type="string">
<XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</Xpath>
</Variable>
</XMLPayload>
</ExtractVariables>
NoXPathsToEvaluate
エラー メッセージ
Apigee UI または API を使用した API プロキシのデプロイに失敗すると、次のエラー メッセージが表示されます。
Error Saving Revision [revision_number] ExtractVariables [policy_name]:no xpaths to evaluate in variable name.
エラー メッセージの例
Error Saving Revision 4
ExtractVariables Extract-Variables-1: no xpaths to evaluate in variable name.
スクリーン ショットの例
原因
Extract Variables ポリシーで <XMLPayload>
要素内に <XPath>
要素がない場合、API プロキシのデプロイは上記のエラーにより失敗します。
診断
エラー メッセージから、失敗した Extract Variables ポリシーを特定します。たとえば次のエラーでは、ポリシー名は
Extract-Variables-1
です。ExtractVariables Extract-Variables-1: no xpaths to evaluate in variable name.
失敗した Extract Variables ポリシーの XML で、
<XPath>
子要素を持たない<XMLPayload>
要素があるかどうかをチェックします。そのような要素がある場合は、それがエラーの原因です。たとえば、
<XMLPayload>
要素を持つ Extract Variables ポリシーを以下に示します。<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1"> <DisplayName>Extract Variables-1</DisplayName> <Properties/> <Source clearPayload="false">request</Source> <VariablePrefix>apigee</VariablePrefix> <XMLPayload stopPayloadProcessing="false"> <Namespaces/> <Variable name="HostReachable" type="boolean"> </Variable> </XMLPayload> </ExtractVariables>
<XPath>
要素がないため、API プロキシのデプロイは失敗します。
解決策
Extract Variables ポリシーで、<XMLPayload>
要素の下に <XPath>
要素が定義されていることを確認します。次に例を示します。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
<DisplayName>Extract Variables-1</DisplayName>
<Properties/>
<Source clearPayload="false">request</Source>
<VariablePrefix>apigee</VariablePrefix>
<XMLPayload stopPayloadProcessing="false">
<Namespaces/>
<Variable name="HostReachable" type="boolean">
<XPath>/isReachable</XPath>
</Variable>
</XMLPayload>
</ExtractVariables>
EmptyXPathExpression
エラー メッセージ
Apigee UI または API を使用した API プロキシのデプロイに失敗すると、次のエラー メッセージが表示されます。
Error Saving Revision [revision_number] ExtractVariables [policy_name]: XPath expression is empty in variable name.
エラー メッセージの例
Error Saving Revision 6
ExtractVariables Extract-Variables-1: XPath expression is empty in variable name.
スクリーン ショットの例
原因
Extract Variables ポリシーで <XMLPayload>
要素内に空の <XPath>
式があると、API プロキシのデプロイは失敗します。
診断
エラー メッセージから、失敗した Extract Variables ポリシーを特定します。たとえば次のエラーでは、ポリシー名は
Extract-Variables-1
です。ExtractVariables Extract-Variables-1: no xpaths to evaluate in variable name.
失敗した Extract Variables ポリシーの XML で、空の
<XPath>
子要素を持つ<XMLPayload>
要素があるかどうかを確認します。そのような要素がある場合は、それがエラーの原因です。たとえば、
<XMLPayload>
要素を持つ Extract Variables ポリシーを以下に示します。<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1"> <DisplayName>Extract Variables-1</DisplayName> <Properties/> <Source clearPayload="false">request</Source> <VariablePrefix>apigee</VariablePrefix> <XMLPayload stopPayloadProcessing="false"> <Namespaces/> <Variable name="address" type="string"> <XPath></XPath> </Variable> </XMLPayload> </ExtractVariables>
<XMLPayload>
要素内に空の<XPath>
要素があるため、API プロキシのデプロイは失敗します。
解決策
Extract Variables ポリシーで、<XMLPayload>
要素の下に空でない有効な <XPath>
要素が定義されていることを確認します。次に例を示します。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
<DisplayName>Extract Variables-1</DisplayName>
<Properties/>
<Source clearPayload="false">request</Source>
<VariablePrefix>apigee</VariablePrefix>
<XMLPayload stopPayloadProcessing="false">
<Namespaces/>
<Variable name="address" type="string">
<XPath>/address</XPath>
</Variable>
</XMLPayload>
</ExtractVariables>
NoJSONPathsToEvaluate
エラー メッセージ
Apigee UI または API を使用した API プロキシのデプロイに失敗すると、次のエラー メッセージが表示されます。
Error Saving Revision [revision_number] ExtractVariables [policy_name]:no jsonpaths to evaluate in variable name.
エラー メッセージの例
Error Saving Revision 6
ExtractVariables Extract-Variables-1: no jsonpaths to evaluate in variable name.
スクリーン ショットの例
原因
Extract Variables ポリシーで <JSONPayload>
要素内に <JSONPath>
要素がない場合、API プロキシのデプロイは上記のエラーにより失敗します。
診断
エラー メッセージから、失敗した Extract Variables ポリシーを特定します。たとえば次のエラーでは、ポリシー名は
Extract-Variables-1
です。ExtractVariables Extract-Variables-1: no jsonpaths to evaluate in variable name.
エラーが発生した Extract Variables ポリシーの XML で、必要な
<JSONPath>
子要素を持たない<JSONPayload>
要素があるかどうかを確認します。そのような要素がある場合は、それがエラーの原因です。たとえば、
<JSONPayload>
要素を持つ Extract Variables ポリシーを以下に示します。<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1"> <DisplayName>Extract Variables-1</DisplayName> <Properties/> <JSONPayload> <Variable name="title"> </Variable> </JSONPayload> <Source clearPayload="false">request</Source> <VariablePrefix>apigee</VariablePrefix> </ExtractVariables>
<JSONPayload>
要素の下に定義された<JSONPath>
子要素がないため、API プロキシのデプロイは失敗します。
解決策
Extract Variables ポリシーで、<JSONPayload>
要素の下に <JSONPath>
要素が定義されていることを確認します。次に例を示します。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
<DisplayName>Extract Variables-1</DisplayName>
<Properties/>
<JSONPayload>
<Variable name="title">
<JSONPath>$.book.title</JSONPath>
</Variable>
</JSONPayload>
<Source clearPayload="false">request</Source>
<VariablePrefix>apigee</VariablePrefix>
</ExtractVariables>
EmptyJSONPathExpression
エラー メッセージ
Apigee UI または API を使用した API プロキシのデプロイに失敗すると、次のエラー メッセージが表示されます。
Error Saving Revision [revision_number] ExtractVariables [policy_name]: JSONPath expression is empty in variable name.
エラー メッセージの例
Error Saving Revision 6
ExtractVariables Extract-Variables-1: JSONPath expression is empty in variable name.
スクリーン ショットの例
原因
Extract Variables ポリシーで <JSONPayload>
要素内に空の <JSONPath>
式があると、API プロキシのデプロイは失敗します。
診断
エラー メッセージから、失敗した Extract Variables ポリシーを特定します。たとえば次のエラーでは、ポリシー名は
Extract-Variables-1
です。ExtractVariables Extract-Variables-1: JSONPath expression is empty in variable name.
エラーが発生した Extract Variables ポリシーの XML で、空の
<JSONPath>
子要素を持つ<JSONPayload>
要素があるかどうかを確認します。そのような要素がある場合は、それがエラーの原因です。たとえば、
<JSONPayload>
要素を持つ Extract Variables ポリシーを以下に示します。<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1"> <DisplayName>Extract Variables-1</DisplayName> <Properties/> <JSONPayload> <Variable name="account_number" type="integer"> <JSONPath></JSONPath> </Variable> </JSONPayload> <Source clearPayload="false">request</Source> <VariablePrefix>apigee</VariablePrefix> </ExtractVariables>
<JSONPayload>
要素内に空の<JSONPath>
要素があるため、API プロキシのデプロイは失敗します。
解決策
Extract Variables ポリシーで、<JSONPayload>
要素の下に空でない有効な <JSONPath>
要素が定義されていることを確認します。次に例を示します。
<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
<DisplayName>Extract Variables-1</DisplayName>
<Properties/>
<JSONPayload>
<Variable name="account_number" type="integer">
<JSONPath>$.account.number</JSONPath>
</Variable>
</JSONPayload>
<Source clearPayload="false">request</Source>
<VariablePrefix>apigee</VariablePrefix>
</ExtractVariables>
MissingName
エラー メッセージ
Apigee UI または API を使用した API プロキシのデプロイに失敗すると、次のエラー メッセージが表示されます。
Error Saving Revision [revision_number] Error occurred while validation of bean [policy_name].xml Reason: - Required attribute name is missing in [element_name]
エラー メッセージの例
Error Saving Revision 6
Error occurred while validation of bean Extract-Variables-1.xml. Reason: - Required attribute name is missing in Variable
スクリーン ショットの例
原因
Extract Variables ポリシーで、QueryParam
、Header
、FormParam
、Variable
などのポリシー要素のいずれかに必須の name
属性がない場合、API プロキシのデプロイは失敗します。
たとえば、このエラーは Variable
要素に name
属性がない場合に発生します。
診断
エラーが発生した Extract Variables ポリシーの名前と、
name
属性がない要素を特定します。これらの項目はエラー メッセージで確認できます。たとえば次のエラーでは、ポリシー名はExtract-Variables-1
、要素名はVariable
です。Error occurred while validation of bean Extract-Variables-1.xml. Reason: - Required attribute name is missing in Variable
エラーが発生した Extract Variables ポリシーの XML で、手順 1 で特定した名前を含む要素のすべてに
name
属性があることを確認します。name 属性がない要素がある場合は、それがエラーの原因です。たとえば、次の Extract Variables ポリシーには
<Variable>
要素が定義されています。<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1"> <DisplayName>Extract Variables-1</DisplayName> <Properties/> <Variable type="boolean"> <Pattern>{isAccountActive}</Pattern> </Variable> </ExtractVariables>
Variable
要素にname
属性が含まれていないため、API プロキシのデプロイは失敗します。
解決策
Extract Variables ポリシーに、QueryParam
、Header
、FormParam
、Variable
の要素のいずれかに必要な name
属性が含まれていることを確認します。次に例を示します。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
<DisplayName>Extract Variables-1</DisplayName>
<Properties/>
<Variable name="account_active" type="boolean">
<Pattern>{isAccountActive}</Pattern>
</Variable>
</ExtractVariables>
PatternWithoutVariable
エラー メッセージ
Apigee UI または API を使用した API プロキシのデプロイに失敗すると、次のエラー メッセージが表示されます。
Error Saving Revision [revision_number] Pattern [pattern] should have at least one variable in ExtractVariables stepDefinition [policy_name]
エラー メッセージの例
Error Saving Revision 7
Pattern /a/b/ should have at least one variable in ExtractVariables stepDefinition ExtractVariables-1.
スクリーン ショットの例
原因
Extract Variables ポリシーの <Pattern>
要素内に変数が指定されていない場合、API プロキシのデプロイは失敗します。<Pattern>
要素には、抽出されたデータを格納する変数の名前が必要です。
診断
エラーが発生した Extract Variables ポリシーの名前と、変数が指定されていないパターンを特定します。これらの項目は、エラー メッセージで確認できます。たとえば次のエラーでは、ポリシー名は
Extract-Variables-1
、要素名は/a/b
です。Pattern /a/b/ should have at least one variable in ExtractVariables stepDefinition ExtractVariables-1.
失敗した Extract Variables ポリシーの XML で、
<Pattern>
要素に設定されたパターンがエラー メッセージ(上記の手順 1)で特定されたパターンと一致することを確認します。たとえば、次のポリシーではパターン/a/b
を指定しており、これはエラー メッセージの内容と一致します。3 つの
<Pattern>
要素を持つ Extract Variables ポリシーの例を以下に示します。<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables name="ExtractVariables-1"> <Source>request</Source> <URIPath> <Pattern ignoreCase="true">/a/{pathSeg}</Pattern> <Pattern ignoreCase="true">/a/b/</Pattern> <Pattern ignoreCase="true">/a/b/c/{pathSeg}</Pattern> </URIPath> <VariablePrefix>urirequest</VariablePrefix> </ExtractVariables>
手順 2 で特定された
<Pattern>
要素に変数が存在しないかどうかを確認します。変数は中括弧で囲む必要があります。パターンに変数が存在しない場合は、それがエラーの原因です。パターン /a/b の
<Pattern>
要素に変数が含まれていないため、API プロキシのデプロイは失敗します。<Pattern ignoreCase="true">/a/b/</Pattern>
解決策
どの <Pattern>
要素にも変数(中括弧で囲まれた名前)が含まれていることを確認します。次に例を示します。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables name="ExtractVariables-1">
<Source>request</Source>
<URIPath>
<Pattern ignoreCase="true">/a/{pathSeg}</Pattern>
<Pattern ignoreCase="true">/a/b/{pathSeg}</Pattern>
<Pattern ignoreCase="true">/a/b/c/{pathSeg}</Pattern>
</URIPath>
<VariablePrefix>urirequest</VariablePrefix>
</ExtractVariables>
CannotBeConvertedToNodeset
エラー メッセージ
Apigee UI または API を使用した API プロキシのデプロイに失敗すると、次のエラー メッセージが表示されます。
Error Deploying Revision [revision_number] ExtractVariables [policy_name]: Result of xpath [policy_name] cannot be converted to nodeset. Context Revision:[revision_number]; APIProxy:[proxy_name]; Organization:[org_name]; Environment:[env_name].
エラー メッセージの例
Error Deploying Revision 4 to test
ExtractVariables Extract-Variables-1: Result of xpath 123 cannot be converted to nodeset. Context Revision:4;APIProxy:EV-XML;Organization:aprabhashankar-eval;Environment:test.
スクリーン ショットの例
原因
Extract Variables ポリシーに、<Variable>
型が nodeset として定義されている <XPath>
式があるのに式を nodeset に変換できない場合、API プロキシのデプロイは失敗します。
診断
エラーが発生した Extract Variables ポリシーと、nodeset に変換できない XPath を特定します。どちらの項目もエラー メッセージで確認できます。たとえば次のエラーでは、ポリシー名は
Extract-Variables-1
、XPath は123
です。ExtractVariables Extract-Variables-1: Result of xpath 123 cannot be converted to nodeset. Context Revision:4;APIProxy:EV-XML;Organization:aprabhashankar-eval;Environment:test.
失敗した Extract Variables ポリシーの XML で、
<XPath>
要素に設定された XPath がエラー メッセージ(上記の手順 1)で特定された XPath と一致することを確認します。たとえば、次のポリシーはXpath を 123
として指定しており、これはエラー メッセージの内容と一致します。<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1"> <DisplayName>Extract Variables-1</DisplayName> <Properties/> <Source clearPayload="false">request</Source> <VariablePrefix>visitor</VariablePrefix> <XMLPayload stopPayloadProcessing="false"> <Namespaces/> <Variable name="age" type="nodeset"> <XPath>123</XPath> </Variable> </XMLPayload> </ExtractVariables>
上記の手順 2 で特定された
<XPath>
に対応する<Variable>
要素の型を調べます。<Variable>
の型がnodeset
の場合は、それがエラーの原因です。Extract Variables ポリシーの例では、
<XPath>
式が123
になっていることに注意してください。<XPath>123</XPath>
式
123
は nodeset に変換できません。そのため、API プロキシのデプロイは失敗します。
解決策
<Variable>
型が nodeset として定義されている場合、Extract Variables ポリシーで使用される <XPath>
式を nodeset に変換できることを確認します。次に例を示します。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
<DisplayName>Extract Variables-1</DisplayName>
<Properties/>
<Source clearPayload="false">request</Source>
<VariablePrefix>visitor</VariablePrefix>
<XMLPayload stopPayloadProcessing="false">
<Namespaces/>
<Variable name="age" type="nodeset">
<XPath>/visitor/age</XPath>
</Variable>
</XMLPayload>
</ExtractVariables>
InvalidPattern
エラー メッセージ
Apigee UI または API を使用した API プロキシのデプロイに失敗すると、次のエラー メッセージが表示されます。
Error Deploying Revision [revision_number]
Pattern [pattern] is invalid in ExtractVariables stepDefinition [policy_name]
エラー メッセージの例
Error Deploying Revision 18 to test
Pattern {*} is invalid in ExtractVariables stepDefinition ExtractVariables-2.
スクリーン ショットの例
原因
<Pattern>
要素の定義が、Extract Variables ポリシー内の URIPath
、QueryParam
、Header
、FormParam
、XMLPayload
、JSONPayload
などの要素のいずれかで無効な場合、API プロキシのデプロイは失敗します。
診断
エラー メッセージから、失敗した Extract Variables ポリシーを特定します。たとえば次のエラーでは、ポリシー名は
Extract-Variables-2
です。Pattern {*} is invalid in ExtractVariables stepDefinition ExtractVariables-2.
失敗した Extract Variables ポリシーの XML で、次の要素のいずれかが存在し、
<Pattern>
要素が含まれているかどうかを確認します。URIPath
、QueryParam
、Header
、FormParam
、XMLPayload
、JSONPayload
などの要素です。たとえば、
<QueryParam>
要素内に<Pattern>
要素がある Extract Variables ポリシーの例を以下に示します。<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables name="ExtractVariables-2"> <DisplayName>ExtractVariables-2</DisplayName> <Source>request</Source> <QueryParam name="code"> <Pattern ignoreCase="true">{*}</Pattern> </QueryParam> <VariablePrefix>queryinfo</VariablePrefix> </ExtractVariables>
各
<Pattern>
要素の定義を確認します。定義が無効な<Pattern>
要素が存在する場合は、それがエラーの原因です。上記の Extract Variables ポリシーの例では、
<QueryParam>
要素内の<Pattern>
定義が無効なため、API プロキシのデプロイは失敗します。マッチングと変数の作成についてもご覧ください。<Pattern ignoreCase="true">{*}</Pattern>
解決策
Extract Variables ポリシーで URIPath
、QueryParam
、Header
、FormParam
、XMLPayload
、JSONPayload
内の <Pattern>
要素の定義が有効なことを確認します。次に例を示します。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables name="ExtractVariables-2">
<DisplayName>Extract a value from a query parameter</DisplayName>
<Source>request</Source>
<QueryParam name="code">
<Pattern ignoreCase="true">{code}</Pattern>
</QueryParam>
<VariablePrefix>queryinfo</VariablePrefix>
</ExtractVariables>
マッチングと変数の作成についてもご覧ください。
XPathCompilationFailed
エラー メッセージ
Apigee UI または API を使用した API プロキシのデプロイに失敗すると、次のエラー メッセージが表示されます。
Error Deploying Revision [revision_number] ExtractVariables [policy_name]: Failed to compile xpath [xpath] Context Revision:[revision_number]; APIProxy:[proxy_name]; Organization:[org_name]; Environment:[env_name].
エラー メッセージの例
Error Deploying Revision 1 to test
ExtractVariables EV-XML-Age: Failed to compile xpath /apigee:Directions/apigee:route/apigee:leg/apigee:name. Context Revision:1;APIProxy:EV-XML;Organization:aprabhashankar-eval;Environment:test.
スクリーン ショットの例
原因
<XPath>
要素で使用される接頭辞や値が Extract Variables ポリシーで宣言された名前空間に含まれていない場合、API プロキシのデプロイは失敗します。
名前空間、XPath、接頭辞の詳細については、XML Namespaces and How They Affect XPath and XSLT をご覧ください。
診断
エラーが発生した Extract Variables ポリシーと、コンパイルできなかった XPath を特定します。どちらの項目もエラー メッセージで確認できます。たとえば次のエラーでは、ポリシー名は
EV-XML-Age
、xPath は/apigee:Directions/apigee:route/apigee:leg/apigee:name
です。ExtractVariables EV-XML-Age: Failed to compile xpath /apigee:Directions/apigee:route/apigee:leg/apigee:name. Context Revision:1;APIProxy:EV-XML;Organization:aprabhashankar-eval;Environment:test.
失敗した Extract Variables ポリシーの XML で、
<XPath>
要素に設定された XPath がエラー メッセージ(上記の手順 1)で特定された XPath と一致することを確認します。たとえば、次のポリシーはXpath を /apigee:Directions/apigee:route/apigee:leg/apigee:name
として指定しており、これはエラー メッセージの内容と一致します。<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age"> <DisplayName>EV-XML-Age</DisplayName> <Source clearPayload="false">request</Source> <XMLPayload stopPayloadProcessing="false"> <Namespaces> <Namespace prefix="gmail">http://mail.google.com</Namespace> </Namespaces> <Variable name="legName" type="string"> <XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</XPath> </Variable> </XMLPayload> </ExtractVariables>
Extract Variables ポリシーの
<Namespaces>
要素と<XPath>
要素を確認します。エラー メッセージに示された特定の<XPath>
で、Extract Variables ポリシーで宣言された名前空間に含まれない接頭辞または値が使用されている場合は、それがエラーの原因です。Extract Variables ポリシーの例では、特定の
<XPath>
で接頭辞apigee
が使用されています。<XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</XPath>
ただし、接頭辞
apigee
はどの<Namespace>
要素にも定義されていないため、<XPath>
のコンパイルは失敗してデプロイエラーになります。
解決策
<XPath>
要素で使用されているすべての名前空間が Extract Variables ポリシーで宣言されていることを確認します。次に例を示します。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age">
<DisplayName>EV-XML-Age</DisplayName>
<Source clearPayload="false">request</Source>
<XMLPayload stopPayloadProcessing="false">
<Namespaces>
<Namespace prefix="apigee">http://www.apigee.com</Namespace>
<Namespace prefix="gmail">http://mail.google.com</Namespace>
</Namespaces>
<Variable name="legName" type="string">
<XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</XPath>
</Variable>
</XMLPayload>
</ExtractVariables>