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

Apigee Edge belgelerini görüntülüyorsunuz.
. Git: Apigee X belgeleri.
bilgi

InvalidResourceType

Hata Mesajı

API proxy'sinin Edge Kullanıcı Arayüzü veya Edge management API üzerinden dağıtılması şu hata mesajını gösterir:

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 ortaya çıkar. Desteklenen kaynak türleri şunlardır: xsd ve wsdl.

Teşhis

  1. Politikanın <ResourceURL> öğesinde kullanılan SOAPMessageValidation politikasının adını ve geçersiz kaynak türünü tanımlayın. Bu öğelerin ikisini de hata mesajında bulabilirsiniz. Örneğin, aşağıdaki hatada SOAPMessageValidation politikasının adı SOAP-Message-Validation-1, kaynak türü ise py şeklindedir.

    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 SOAPMessageValidation politika XML'ini 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ü hata mesajındakiyle eşleşen py olarak belirtir:

    <?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> öğesinde kullanılan kaynak türü xsd veya wsdl olmadığı için, dağıtım, yukarıda gösterilen hata ile 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 örnek 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 üzerinden dağıtılması şu hata mesajını gösterir:

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 başvurulan kaynak komut dosyası, dağıtım sırasında derleme yapılmasını engelleyen bir hata içeriyorsa ortaya çıkar.

Teşhis

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

    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 SOAPMessageValidation politika 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 politika, <ResourceURL> öğesini hata mesajındakiyle eşleşen SOAP-Message-Validation-1.wsdl olarak belirtir:

    <?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ım'da tanımlanan kaynak komut dosyası dosyasını görüntüleyin ve dosya olup olmadığına bakın derleme hatalarına neden olabilecek potansiyel sorunlar.

    Aşağıda örnek bir kaynak komut dosyası 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ğinden dağıtım başarısız olur.

Çözünürlük

Komut dosyasının <ResourceURL> öğesinde belirtilen kaynak komut dosyasının, SOAPMessageValidation politikasında, derlemeyi engelleyen bir sorun yok.

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

<?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ını görüyorsunuz:

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çermez.

Teşhis

  1. Hatanın oluştuğu SOAPMessageValidation politikasının adını tanımlayın. Örneğin, Örneğin, aşağıdaki hatada, SOAPMessageValidation politikasının adı: SOAP-Message-Validation-1:

    Error Saving Revision 2
    MessageValidation SOAP-Message-Validation-1: RootElement name is not specified.
    
  2. Başarısız SOAPMessageValidation politika XML'ini inceleyin. Kök öğenin adı doğrulama için kullanılan dil <Element> öğesinde belirtilmemişse bu yardımcı olur.

    Örneğin, aşağıdaki politika kök öğe adını belirtmez:

    <?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ğinden dağıtım, yukarıda gösterilen hatayla başarısız olur.

Çözünürlük

SOAPMessageValidation politikasının <Element> öğesinin, şunu içerdiğinden emin olun: eklemeniz gerekir.

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

<?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ını görüyorsunuz:

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 için XML kurallarına uymayan bir kök öğe adı içeriyor adlandırabilirsiniz.

Teşhis

  1. Hatanın oluştuğu SOAPMessageValidation politikasının adını tanımlayın. Örneğin, aşağıdaki hatada SOAPMessageValidation politikasının 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 SOAPMessageValidation politika XML'ini inceleyin. Kök öğenin adı <Element> öğesinde belirtilen, geçerli bir XML ölçütleriyle eşleşmiyor öğesi varsa hatanın nedeni budur.

    Örneğin, aşağıdaki politika Bu sayı geçersizdir. 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, şu bilgiyi içerdiğinden emin olun: geçerli bir kök öğe adı olmalıdır.

Yukarıda gösterilen SOAPMessageValidation politikasını düzeltmek için <Element> öğesi, aşağıda gösterildiği gibi geçerli bir kök öğe adı içermelidir:

<?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 üzerinden dağıtılması başarısız şu hata mesajıyla:

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, kaynak dosyasının <Resource> öğesinde belirtilen SOAPMessageValidation politikası, kullanılabilecek hiçbir öğe içermiyor kontrol edin.

Teşhis

  1. Hata mesajındaki eksik öğe tanımlarını kaynak dosyası olarak belirleyin. Örneğin, aşağıdaki hatada, xsd://Script-1.xsd içinde kullanılan kaynak dosyası kullanılmıştır:

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

    Örneğin, şu kaynak dosyası Script-1.xsd hiç öğe içermiyor:

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

    Kaynak dosyada öğe bulunmadığı için dağıtım başarısız olur. yukarıda gösterilen hata ile karşılaşırsınız.

Çözünürlük

SOAPMessageValidation politikasında kullanılan kaynak dosyasının şu içeriği içerdiğinden emin olun: ilgili öğe tanımlarını göz önünde bulundurun.

Yukarıda gösterilen örnek kaynak dosyasını düzeltmek için xsd dosyasını değiştirebilirsiniz. kodunu ekleyin:

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