Pemecahan masalah error deployment kebijakan Validasi Pesan SOAP

Anda sedang melihat dokumentasi Apigee dan Apigee hybrid.
Lihat dokumentasi Apigee Edge.

InvalidResourceType

Pesan Error

Deployment proxy API melalui UI atau API Apigee gagal dengan pesan error ini:

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.

Contoh Pesan Error

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.

Contoh Screenshot Error

Pesan error resource tidak valid.

Penyebab

Error ini terjadi jika elemen <ResourceURL> dalam kebijakan SOAPMessageValidation ditetapkan ke jenis resource yang tidak didukung oleh kebijakan. Jenis resource yang didukung adalah xsd dan wsdl.

Diagnosis

  1. Identifikasi nama kebijakan SOAPMessageValidation dan jenis resource yang tidak valid yang digunakan dalam elemen <ResourceURL> kebijakan. Anda dapat menemukan kedua item ini dalam pesan error. Misalnya, dalam error berikut, nama kebijakan SOAPMessageValidation adalah SOAP-Message-Validation-1 dan jenis resource-nya adalah 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.
    
  2. Periksa XML kebijakan SOAPMessageValidation yang gagal. Jika jenis resource yang ditentukan untuk elemen <ResourceURL> cocok dengan jenis resource yang tidak valid yang diidentifikasi pada Langkah 1 di atas, hal tersebut adalah penyebab error.

    Misalnya, kebijakan berikut menentukan jenis resource sebagai py, yang cocok dengan yang ada dalam pesan error:

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

    Karena jenis resource yang digunakan di <ResourceURL> bukan xsd atau wsdl, deployment akan gagal dengan error yang ditampilkan di atas.

Resolusi

Pastikan jenis resource yang ditentukan dalam elemen <ResourceURL> kebijakan SOAPMessageValidation ditetapkan ke xsd atau wsdl, dan file resource menggunakan format yang benar.

Untuk memperbaiki contoh kebijakan SOAPMessageValidation yang ditampilkan di atas, Anda dapat mengubah jenis resource menjadi xsd atau 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

Pesan Error

Deployment proxy API melalui UI atau API Apigee gagal dengan pesan error ini:

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.

Contoh Pesan Error

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.

Contoh Screenshot Error

Gagal mengompilasi pesan error resource.

Penyebab

Error ini terjadi jika skrip resource yang direferensikan dalam elemen <ResourceURL> kebijakan SOAPMessageValidation berisi error yang mencegahnya dikompilasi selama deployment.

Diagnosis

  1. Identifikasi nama kebijakan SOAPMessageValidation dan skrip resource yang digunakan dalam kebijakan. Anda dapat menemukan kedua item ini dalam pesan error. Misalnya, dalam error berikut, nama kebijakan SOAPMessageValidation adalah SOAP-Message-Validation-1 dan skrip resource adalah 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.
    
  2. Periksa XML kebijakan SOAPMessageValidation yang gagal dan pastikan skrip resource yang ditentukan untuk elemen <ResourceURL> cocok dengan yang ada dalam pesan error.

    Misalnya, kebijakan berikut menentukan elemen <ResourceURL> sebagai SOAP-Message-Validation-1.wsdl, yang cocok dengan yang ada dalam pesan error:

    <?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. Lihat file skrip resource yang diidentifikasi pada Langkah 1 dan lihat apakah ada potensi masalah yang dapat menyebabkan error kompilasi.

    Berikut adalah contoh file skrip resource:

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

    Karena xmlns:wsdl mengarah ke URL yang tidak valid, deployment akan gagal dengan error yang ditampilkan di atas.

Resolusi

Pastikan skrip resource yang ditentukan dalam elemen <ResourceURL> dari kebijakan SOAPMessageValidation tidak memiliki masalah yang mencegahnya dikompilasi.

Untuk memperbaiki skrip SOAP-Message-Validation-1.wsdl yang ditampilkan di atas, Anda dapat mengubah xmlns:wsdl agar mengarah ke URL yang valid:

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

Pesan Error

Menyimpan proxy API melalui UI atau API Apigee gagal dengan pesan error ini:

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

Contoh Pesan Error

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

Contoh Screenshot Error

Pesan error nama RootElement tidak ditentukan.

Penyebab

Error ini terjadi jika elemen <Element> dalam kebijakan SOAPMessageValidation tidak berisi nama elemen root.

Diagnosis

  1. Identifikasi nama kebijakan SOAPMessageValidation tempat error terjadi. Misalnya, dalam error berikut, nama kebijakan SOAPMessageValidation adalah SOAP-Message-Validation-1:

    Error Saving Revision 2
    MessageValidation SOAP-Message-Validation-1: RootElement name is not specified.
    
  2. Periksa XML kebijakan SOAPMessageValidation yang gagal. Jika nama elemen root yang digunakan untuk validasi tidak ditentukan dalam elemen <Element>, hal itulah yang menyebabkan error.

    Misalnya, kebijakan berikut tidak menentukan nama elemen root:

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

    Karena nama elemen root tidak ditentukan, deployment akan gagal dengan error yang ditampilkan di atas.

Resolusi

Pastikan elemen <Element> kebijakan SOAPMessageValidation berisi elemen root yang benar.

Untuk memperbaiki kebijakan SOAPMessageValidation yang ditampilkan di atas, Anda dapat mengubah <Element> dan menambahkan elemen root yang valid seperti di bawah ini:

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

Pesan Error

Menyimpan proxy API melalui UI atau API Apigee gagal dengan pesan error ini:

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

Contoh Pesan Error

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

Contoh Screenshot Error

Nama RootElement 1GetPriceResponse adalah pesan error yang tidak valid.

Penyebab

Error ini terjadi jika elemen <Element> dalam kebijakan SOAPMessageValidation berisi nama elemen root yang tidak mematuhi aturan XML untuk penamaan elemen yang valid.

Diagnosis

  1. Identifikasi nama kebijakan SOAPMessageValidation tempat error terjadi. Misalnya, dalam error berikut, nama kebijakan SOAPMessageValidation adalah SOAP-Message-Validation-1:

    Error Saving Revision 2
    MessageValidation SOAP-Message-Validation-1: RootElement name 1GetPriceResponse
    is invalid.
    
  2. Periksa XML kebijakan SOAPMessageValidation yang gagal. Jika nama elemen root yang ditentukan dalam elemen <Element> tidak cocok dengan kriteria untuk nama elemen XML yang valid, hal tersebut adalah penyebab error.

    Misalnya, kebijakan berikut memiliki nama elemen root yang dimulai dengan angka, yang tidak valid. Nama elemen yang berisi spasi juga tidak valid.

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

Resolusi

Pastikan elemen <Element> kebijakan SOAPMessageValidation berisi nama elemen root yang valid.

Untuk memperbaiki kebijakan SOAPMessageValidation yang ditampilkan di atas, Anda dapat mengubah elemen <Element> agar berisi nama elemen root yang valid, seperti yang ditunjukkan di bawah ini:

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

Pesan Error

Deployment proxy API melalui UI atau API Apigee gagal dengan pesan error ini:

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

Contoh Pesan Error

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

Contoh Screenshot Error

Resource tidak memiliki pesan error definisi elemen.

Penyebab

Error ini terjadi jika file resource yang ditentukan dalam elemen <Resource> kebijakan SOAPMessageValidation tidak berisi elemen apa pun yang dapat digunakan untuk validasi.

Diagnosis

  1. Identifikasi file resource yang tidak memiliki definisi elemen dari pesan error. Misalnya, dalam error berikut, file resource yang digunakan dalam xsd://Script-1.xsd adalah:

    Error Deploying Revision 2 to test
    Resource "xsd://Script-1.xsd" has no element definitions.
    
  2. Periksa file resource yang diidentifikasi di Langkah 1. Jika tidak ada elemen yang ditentukan, hal itu adalah penyebab error.

    Misalnya, file resource Script-1.xsd berikut tidak berisi elemen apa pun:

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

    Karena file resource tidak memiliki elemen apa pun, deployment akan gagal dengan error yang ditampilkan di atas.

Resolusi

Pastikan file resource yang digunakan dalam kebijakan SOAPMessageValidation berisi definisi elemen yang relevan.

Untuk memperbaiki contoh file resource yang ditampilkan di atas, Anda dapat mengubah file xsd untuk menambahkan konten berikut:

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