SOAP Mesaj Doğrulama politikası dağıtımı hatasını giderme

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

InvalidResourceType

Hata Mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtımı şu hata mesajıyla başarısız oluyor:

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.

Örnek hata mesajı

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.

Örnek hata ekran görüntüsü

Neden

Bu hata, SOAPMessageValidation politikasındaki <ResourceURL> öğesi, politika tarafından desteklenmeyen bir kaynak türüne ayarlanırsa oluşur. Desteklenen kaynak türleri xsd ve wsdl'dir.

Teşhis

  1. SOAPMessageValidation politika adını ve politikanın <ResourceURL> öğesinde kullanılan geçersiz kaynak türünü belirleyin. Bu öğelerin ikisini de hata mesajında bulabilirsiniz. Örneğin, aşağıdaki hatada SOAPMessageValidation politika adı SOAP-Message-Validation-1 ve kaynak türü py'dir.

    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.
    
  2. Başarısız olan SOAPMessageValidation politikası XML'sini inceleyin. <ResourceURL> öğesi için belirtilen kaynak türü, yukarıdaki 1. adımda tanımlanan geçersiz kaynak türüyle eşleşiyorsa hatanın nedeni budur.

    Örneğin, aşağıdaki politika kaynak türünü py olarak belirtir. Bu, hata mesajındakiyle eşleşir:

    <?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> içinde kullanılan kaynak türü xsd veya wsdl olmadığından dağıtım, yukarıda gösterilen hatayla başarısız olur.

Çözünürlük

SOAPMessageValidation politikasının <ResourceURL> öğesinde belirtilen kaynak türünün xsd veya wsdl olarak ayarlandığından ve kaynak dosyasının doğru biçimlendirmeyi kullandığından emin olun.

Yukarıda gösterilen SOAPMessageValidation politikasını düzeltmek için kaynak türünü xsd veya wsdl olarak değiştirebilirsiniz:

<?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

Hata Mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtımı şu hata mesajıyla başarısız oluyor:

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.

Örnek hata mesajı

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.

Örnek hata ekran görüntüsü

Neden

Bu hata, SOAPMessageValidation politikasının <ResourceURL> öğesinde referans verilen kaynak komut dosyasında, dağıtım sırasında derlenmesini engelleyen bir hata varsa oluşur.

Teşhis

  1. SOAPMessageValidation politika adını ve politikada kullanılan kaynak komut dosyasını belirleyin. Bu öğelerin ikisini de hata mesajında bulabilirsiniz. Örneğin, aşağıdaki hatada SOAPMessageValidation politika adı SOAP-Message-Validation-1 ve kaynak komut dosyası SOAP-Message-Validation-1.wsdl'dir.

    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.
    
  2. Başarısız olan SOAPMessageValidation politikası XML'sini inceleyin ve <ResourceURL> öğesi için belirtilen kaynak komut dosyasının hata mesajındakiyle eşleştiğini doğrulayın.

    Örneğin, aşağıdaki politikada <ResourceURL> öğesi SOAP-Message-Validation-1.wsdl olarak belirtilmiştir. Bu, hata mesajındakiyle eşleşir:

    <?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>
    
  3. 1. adımda tanımlanan kaynak komut dosyası dosyasını görüntüleyin ve derleme hatalarına neden olabilecek olası sorunlar olup olmadığını kontrol edin.

    Aşağıda örnek bir kaynak komut dosyası verilmiştir:

    <?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, geçersiz bir URL'ye yönlendirdiği için dağıtım yukarıda gösterilen hatayla başarısız olur.

Çözünürlük

SOAPMessageValidation politikasının <ResourceURL> öğesinde belirtilen kaynak komut dosyasında derlenmesini engelleyen herhangi bir sorun olmadığından emin olun.

Yukarıda gösterilen SOAP-Message-Validation-1.wsdl komut dosyasını düzeltmek için xmlns:wsdl öğesini geçerli bir URL'ye yönlendirecek şekilde değiştirebilirsiniz:

<?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

Hata Mesajı

API proxy'sini Edge kullanıcı arayüzü veya Edge Management API aracılığıyla kaydetme işlemi şu hata mesajıyla başarısız oluyor:

Error Saving Revision revision_number
MessageValidation soap_message_validation_policy:
RootElement name is not specified.

Örnek hata mesajı

Error Saving Revision 2
MessageValidation SOAP-Message-Validation-1: RootElement name is not specified.

Örnek hata ekran görüntüsü

Neden

Bu hata, SOAPMessageValidation politikasındaki <Element> öğesi kök öğenin adını içermediğinde oluşur.

Teşhis

  1. Hatayı içeren SOAPMessageValidation politika adını belirleyin. Örneğin, aşağıdaki hatada SOAPMessageValidation politika adı SOAP-Message-Validation-1'dır:

    Error Saving Revision 2
    MessageValidation SOAP-Message-Validation-1: RootElement name is not specified.
    
  2. Başarısız olan SOAPMessageValidation politikası XML'sini inceleyin. Doğrulama için kullanılan kök öğe adı <Element> öğesinde belirtilmemişse hatanın nedeni budur.

    Örneğin, aşağıdaki politikada kök öğe adı belirtilmiyor:

    <?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>
    

    Kök öğe adı belirtilmediği için dağıtım, yukarıda gösterilen hatayla başarısız olur.

Çözünürlük

SOAPMessageValidation politikasının <Element> öğesinin doğru kök öğeyi içerdiğinden emin olun.

Yukarıda gösterilen SOAPMessageValidation politikasını düzeltmek için <Element> öğesini değiştirebilir ve aşağıda gösterildiği gibi geçerli bir kök öğe ekleyebilirsiniz:

<?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

Hata Mesajı

API proxy'sini Edge kullanıcı arayüzü veya Edge Management API aracılığıyla kaydetme işlemi şu hata mesajıyla başarısız oluyor:

Error Saving Revision revision_number
MessageValidation soap_message_validation_policy: RootElement name root_element_name is invalid.

Örnek hata mesajı

Error Saving Revision 2
MessageValidation SOAP-Message-Validation-1: RootElement name 1GetPriceResponse
is invalid.

Örnek hata ekran görüntüsü

Neden

Bu hata, SOAPMessageValidation politikasındaki <Element> öğesi, geçerli öğe adlandırması için XML kurallarına uymayan bir kök öğe adı içeriyorsa oluşur.

Teşhis

  1. Hatayı içeren SOAPMessageValidation politika adını belirleyin. Örneğin, aşağıdaki hatada SOAPMessageValidation politika adı SOAP-Message-Validation-1 şeklindedir:

    Error Saving Revision 2
    MessageValidation SOAP-Message-Validation-1: RootElement name 1GetPriceResponse
    is invalid.
    
  2. Başarısız olan SOAPMessageValidation politikası XML'sini inceleyin. <Element> öğesinde belirtilen kök öğe adı, geçerli bir XML öğe adı ölçütleriyle eşleşmiyorsa hatanın nedeni budur.

    Örneğin, aşağıdaki politikada geçersiz olan, sayıyla başlayan bir kök öğe adı vardır. Boşluk içeren bir öğe adı da geçersiz olur.

    <?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>
    

Çözünürlük

SOAPMessageValidation politikasının <Element> öğesinin geçerli bir kök öğe adı içerdiğinden emin olun.

Yukarıda gösterilen SOAPMessageValidation politikasını düzeltmek için <Element> öğesini aşağıdaki örnekte gösterildiği gibi geçerli bir kök öğe adı içerecek şekilde değiştirebilirsiniz:

<?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

Hata Mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtımı şu hata mesajıyla başarısız oluyor:

Error Deploying Revision revision_number
Resource "resource_url" has no element definitions.

Örnek hata mesajı

Error Deploying Revision 2 to test
Resource "xsd://Script-1.xsd" has no element definitions.

Örnek hata ekran görüntüsü

Neden

Bu hata, SOAPMessageValidation politikasının <Resource> öğesinde belirtilen kaynak dosyasında doğrulama için kullanılabilecek herhangi bir öğe bulunmadığında oluşur.

Teşhis

  1. Hata mesajından, öğe tanımları eksik olan kaynak dosyasını belirleyin. Örneğin, aşağıdaki hatada kullanılan kaynak dosyası xsd://Script-1.xsd'dır:

    Error Deploying Revision 2 to test
    Resource "xsd://Script-1.xsd" has no element definitions.
    
  2. 1. adımda belirtilen kaynak dosyasını inceleyin. Tanımlanmış öğe yoksa hatanın nedeni budur.

    Örneğin, aşağıdaki kaynak dosya Script-1.xsd herhangi bir öğe içermiyor:

    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    </xsd:schema>
    

    Kaynak dosyasında herhangi bir öğe bulunmadığı için dağıtım, yukarıda gösterilen hatayla başarısız olur.

Çözünürlük

SOAPMessageValidation politikasında kullanılan kaynak dosyanın ilgili öğe tanımlarını içerdiğinden emin olun.

Yukarıda gösterilen örnek kaynak dosyasını düzeltmek için xsd dosyasını aşağıdaki içeriği ekleyecek şekilde değiştirebilirsiniz:

<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>