Apigee Edge のドキュメントを表示しています。
Apigee X のドキュメントに移動。 情報
InvalidResourceType
エラー メッセージ
Edge UI または Edge 管理 API を使用した API プロキシのデプロイに失敗し、次のエラー メッセージが表示されます。
Error Deploying Revision revision_number to environment MessageValidation soap_message_validation_policy: Invalid Resource Type resource_type. It should be xsd or wsdl. Context Revision:revision_number;APIProxy:apiproxy_name;Organization:organization;Environment:environment.
エラー メッセージの例
Error Deploying Revision 1 to test
MessageValidation SOAP-Message-Validation-1: Invalid Resource Type py.
It should be xsd or wsdl. Context Revision:1;APIProxy:soapmessagevalidation;
Organization:gsc-hipaa;Environment:test.
エラーのスクリーンショットの例
原因
このエラーは、SOAPMessageValidation ポリシーの <ResourceURL>
要素が、ポリシーでサポートされていないリソースタイプに設定されている場合に発生します。サポートされているリソースタイプは xsd
と wsdl
です。
診断
ポリシーの
<ResourceURL>
要素で使用されている SOAPMessageValidation ポリシー名と無効なリソースタイプを特定します。どちらの項目もエラー メッセージで確認できます。たとえば、次のエラーでは、SOAPMessageValidation ポリシー名はSOAP-Message-Validation-1
で、リソースタイプはpy
です。Error Deploying Revision 1 to test MessageValidation SOAP-Message-Validation-1: Invalid Resource Type py. It should be xsd or wsdl. Context Revision:1;APIProxy:soapmessagevalidation;Organization:gsc- hipaa;Environment:test.
エラーが発生した SOAPMessageValidation ポリシーの XML を調べます。
<ResourceURL>
要素に指定されたリソースタイプが上記のステップ 1 で特定された無効のリソースタイプと一致する場合、これがエラーの原因です。たとえば、次のポリシーではリソースタイプに
py
が指定されており、これはエラー メッセージの内容と一致します。<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <MessageValidation async="false" continueOnError="false" enabled="true" name="SOAP-Message-Validation-1"> <DisplayName>SOAP Message Validation-1</DisplayName> <Properties/> <Element namespace="http://sample.com"> sampleObject</Element> <SOAPMessage/> <Source>request</Source> <ResourceURL>py://Script-1.py</ResourceURL> </MessageValidation>
<ResourceURL>
で使用されるリソースタイプがxsd
またはwsdl
ではないため、デプロイは上記のエラーで失敗します。
解決策
SOAPMessageValidation ポリシーの <ResourceURL>
要素で指定されたリソースタイプが xsd
または wsdl
に設定されていることと、リソース ファイルが正しい形式になっていることを確認してください。
上記の SOAPMessageValidation ポリシーの例を修正するには、リソースタイプを xsd
または wsdl
に変更します。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<MessageValidation async="false" continueOnError="false" enabled="true"
name="SOAP-Message-Validation-1">
<DisplayName>SOAP Message Validation-1</DisplayName>
<Properties/>
<Element namespace="http://sample.com"> sampleObject</Element>
<SOAPMessage/>
<Source>request</Source>
<ResourceURL>wsdl://SOAP-Message-Validation-1.wsdl</ResourceURL>
</MessageValidation>
ResourceCompileFailed
エラー メッセージ
Edge UI または Edge 管理 API を使用した API プロキシのデプロイに失敗し、次のエラー メッセージが表示されます。
Error Deploying Revision revision_number to environment MessageValidation soap_message_validation_policy: Failed to compile resource resource. Context Revision:revision_number;APIProxy:apiproxy_name;Organization:organization;Environment:environment.
エラー メッセージの例
Error Deploying Revision 1 to test
MessageValidation SOAP-Message-Validation-1: Failed to compile resource SOAP-Message-Validation-1.wsdl. Context Revision:1;APIProxy:soapmessagevalidation;Organization:gsc-hipaa;Environment:test.
エラーのスクリーンショットの例
原因
このエラーは、SOAPMessageValidation ポリシーの <ResourceURL>
要素で参照されているリソース スクリプトに、デプロイ中にコンパイルを妨げるエラーが含まれている場合に発生します。
診断
ポリシーで使用されている SOAPMessageValidation ポリシー名とリソース スクリプトを特定します。どちらの項目もエラー メッセージで確認できます。たとえば、次のエラーでは、SOAPMessageValidation ポリシー名は
SOAP-Message-Validation-1
で、リソース スクリプトはSOAP-Message-Validation-1.wsdl
です。Error Deploying Revision 1 to test MessageValidation SOAP-Message-Validation-1: Failed to compile resource SOAP-Message-Validation-1.wsdl. Context Revision:1;APIProxy:soapmessagevalidation;Organization:gsc-hipaa; Environment:test.
エラーが発生した SOAPMessageValidation ポリシー XML を調べて、
<ResourceURL>
要素に指定されたリソース スクリプトが、エラー メッセージの内容と一致することを確認します。たとえば、次のポリシーでは
<ResourceURL>
要素がSOAP-Message-Validation-1.wsdl
として指定されており、これはエラー メッセージの内容と一致します。<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <MessageValidation async="false" continueOnError="false" enabled="true" name="SOAP-Message-Validation-1"> <DisplayName>SOAP Message Validation-1</DisplayName> <Properties/> <Element namespace="http://sample.com"> sampleObject</Element> <SOAPMessage/> <Source>request</Source> <ResourceURL>wsdl://SOAP-Message-Validation-1.wsdl</ResourceURL> </MessageValidation>
ステップ 1 で特定したリソース スクリプト ファイルを表示して、コンパイル エラーを引き起こす可能性のある問題がないか確認します。
リソース スクリプト ファイルの例:
<?xml version="1.0" encoding="ISO-8859-1"?> <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsd/"> <wsdl:types> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="request" type="xs:string"/> </xs:schema> </wsdl:types> </wsdl:definitions>
xmlns:wsdl
が無効な URL を指しているため、上記のエラーでデプロイが失敗します。
解決策
SOAPMessageValidation ポリシーの <ResourceURL>
要素で指定されたリソース スクリプトに、コンパイルの妨げになる問題がないようにしてください。
上記の SOAP-Message-Validation-1.wsdl
スクリプトを修正するには、有効な URL を指すように xmlns:wsdl
を変更します。
<?xml version="1.0" encoding="ISO-8859-1"?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<wsdl:types>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="request" type="xs:string"/>
</xs:schema>
</wsdl:types>
</wsdl:definitions>
RootElementNameUnspecified
エラー メッセージ
Edge UI または Edge 管理 API を使用した API プロキシの保存に失敗すると、次のエラー メッセージが表示されます。
Error Saving Revision revision_number MessageValidation soap_message_validation_policy: RootElement name is not specified.
エラー メッセージの例
Error Saving Revision 2
MessageValidation SOAP-Message-Validation-1: RootElement name is not specified.
エラーのスクリーンショットの例
原因
このエラーは、SOAPMessageValidation ポリシーの <Element>
要素に、ルート要素の名前がない場合に発生します。
診断
エラーが発生した SOAPMessageValidation ポリシー名を特定します。たとえば、次のエラーでは、SOAPMessageValidation ポリシー名は
SOAP-Message-Validation-1
です。Error Saving Revision 2 MessageValidation SOAP-Message-Validation-1: RootElement name is not specified.
エラーが発生した SOAPMessageValidation ポリシーの XML を調べます。検証に使用するルート要素名が
<Element>
要素内で指定されていない場合、それがエラーの原因です。たとえば、次のポリシーではルート要素名が指定されていません。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <MessageValidation async="false" continueOnError="false" enabled="true" name="SOAP-Message-Validation-1"> <DisplayName>SOAP Message Validation-1</DisplayName> <Properties/> <Element namespace="http://schemas.xmlsoap.org/soap/prices"/> <SOAPMessage/> <Source>request</Source> <ResourceURL>xsd://Script-1.xsd</ResourceURL> </MessageValidation>
ルート要素名が指定されていないため、デプロイは上記のエラーにより失敗します。
解決策
SOAPMessageValidation ポリシーの <Element>
要素に、正しいルート要素が含まれていることを確認します。
上記の SOAPMessageValidation ポリシーを修正するには、次のように <Element>
を変更して、有効なルート要素を追加します。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<MessageValidation async="false" continueOnError="false" enabled="true"
name="SOAP-Message-Validation-1">
<DisplayName>SOAP Message Validation-1</DisplayName>
<Properties/>
<Element namespace="http://schemas.xmlsoap.org/soap/prices">GetPriceResponse</Element>
<SOAPMessage/>
<Source>request</Source>
<ResourceURL>xsd://Script-1.xsd</ResourceURL>
</MessageValidation>
InvalidRootElementName
エラー メッセージ
Edge UI または Edge 管理 API を使用した API プロキシの保存に失敗すると、次のエラー メッセージが表示されます。
Error Saving Revision revision_number MessageValidation soap_message_validation_policy: RootElement name root_element_name is invalid.
エラー メッセージの例
Error Saving Revision 2
MessageValidation SOAP-Message-Validation-1: RootElement name 1GetPriceResponse
is invalid.
エラーのスクリーンショットの例
原因
このエラーは、SOAPMessageValidation ポリシーの <Element>
要素に、要素の有効な命名方法の XML ルールに準拠していないルート要素名が含まれている場合に発生します。
診断
エラーが発生した SOAPMessageValidation ポリシー名を特定します。たとえば、次のエラーでは、SOAPMessageValidation ポリシー名は
SOAP-Message-Validation-1
です。Error Saving Revision 2 MessageValidation SOAP-Message-Validation-1: RootElement name 1GetPriceResponse is invalid.
エラーが発生した SOAPMessageValidation ポリシーの XML を調べます。
<Element>
要素で指定されたルート要素名が有効な XML 要素名の条件と一致しない場合は、それがエラーの原因です。たとえば、次のポリシーには数字で始まるルート要素名があります。数字で始まるルート要素名は無効です。スペースを含む要素名も無効です。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <MessageValidation async="false" continueOnError="false" enabled="true" name="SOAP-Message-Validation-1"> <DisplayName>SOAP Message Validation-1</DisplayName> <Properties/> <Element namespace="http://schemas.xmlsoap.org/soap/prices">1GetPriceResponse</Element> <SOAPMessage/> <Source>request</Source> <ResourceURL>xsd://Script-1.xsd</ResourceURL> </MessageValidation>
解決策
SOAPMessageValidation ポリシーの <Element>
要素に、有効なルート要素名が含まれていることを確認します。
上記の SOAPMessageValidation ポリシーを修正するには、次のように、有効なルート要素名が含まれるように <Element>
要素を変更します。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<MessageValidation async="false" continueOnError="false" enabled="true" name="SOAP-Message-Validation-1">
<DisplayName>SOAP Message Validation-1</DisplayName>
<Properties/>
<Element namespace="http://schemas.xmlsoap.org/soap/prices">GetPriceResponse</Element>
<SOAPMessage/>
<Source>request</Source>
<ResourceURL>xsd://Script-1.xsd</ResourceURL>
</MessageValidation>
NoElements
エラー メッセージ
Edge UI または Edge 管理 API を使用した API プロキシのデプロイに失敗し、次のエラー メッセージが表示されます。
Error Deploying Revision revision_number Resource "resource_url" has no element definitions.
エラー メッセージの例
Error Deploying Revision 2 to test
Resource "xsd://Script-1.xsd" has no element definitions.
エラーのスクリーンショットの例
原因
このエラーは、SOAPMessageValidation ポリシーの <Resource>
要素で指定されたリソース ファイルに、検証に使用できる要素が含まれていない場合に発生します。
診断
エラー メッセージから要素定義がないリソース ファイルを特定します。たとえば、次のエラーでは、使用されているリソース ファイルは
xsd://Script-1.xsd
です。Error Deploying Revision 2 to test Resource "xsd://Script-1.xsd" has no element definitions.
ステップ 1 で特定したリソース ファイルを調べます。要素が定義されていない場合、それがエラーの原因です。
たとえば、次のリソース ファイル
Script-1.xsd
には要素が含まれていません。<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> </xsd:schema>
リソース ファイルに要素が含まれていないため、デプロイは上記のエラーにより失敗します。
解決策
SOAPMessageValidation ポリシーで使用されるリソース ファイルに、関連する要素の定義が含まれていることを確認します。
上記のサンプルのリソース ファイルを修正するには、xsd
ファイルを変更して次の内容を追加します。
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="shipOrder" type="order"/>
<xsd:complexType name="order">
<xsd:sequence>
<xsd:element name="shipTo" type="shipAddress"/>
<xsd:element name="items" type="cdItems"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="shipAddress">
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="street" type="xsd:string"/>
<xsd:element name="address" type="xsd:string"/>
<xsd:element name="country" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="cdItems">
<xsd:sequence>
<xsd:element name="item" type="cdItem" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="cdItem">
<xsd:sequence>
<xsd:element name="title" type="xsd:string"/>
<xsd:element name="quantity" type="xsd:integer"/>
<xsd:element name="price" type="xsd:decimal"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>