Pemecahan masalah deployment kebijakan Validasi Pesan SOAP

Anda sedang melihat dokumentasi Apigee Edge.
Buka dokumentasi Apigee X.
info

InvalidResourceType

Pesan Error

Deployment proxy API melalui UI Edge atau Edge management API 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

Penyebab

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

Diagnosis

  1. Identifikasi nama kebijakan SOAPMessageValidation dan jenis resource tidak valid yang digunakan dalam elemen <ResourceURL> kebijakan tersebut. 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 tidak valid yang diidentifikasi pada Langkah 1 di atas, berarti itulah 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 disetel 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 Edge atau Edge management API 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

Penyebab

Error ini terjadi jika skrip resource yang dirujuk dalam elemen <ResourceURL> kebijakan SOAPMessageValidation berisi error yang mencegah kompilasi 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-nya 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 verifikasi bahwa 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 mengakibatkan 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 ditunjukkan di atas.

Resolusi

Pastikan skrip resource yang ditentukan dalam elemen <ResourceURL> kebijakan SOAPMessageValidation tidak memiliki masalah yang mencegah kompilasinya.

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

Penyimpanan proxy API melalui UI Edge atau API pengelolaan Edge 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

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>, itulah penyebab errornya.

    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:

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

Penyimpanan proxy API melalui UI Edge atau API pengelolaan Edge 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

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, itulah penyebab error.

    Misalnya, kebijakan berikut memiliki nama elemen root yang diawali dengan angka, dan tidak valid. Nama elemen yang berisi spasi juga menjadi 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 Edge atau Edge management API 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

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 dengan definisi elemen yang tidak ada di pesan error. Misalnya, dalam error berikut, file resource yang digunakan dalam xsd://Script-1.xsd:

    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, maka itulah penyebab kesalahan.

    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>