Pemecahan masalah error deployment kebijakan SOAP Message Validation

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

InvalidResourceType

Pesan Kesalahan

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

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 dirujuk 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 tersebut. 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 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 isi 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 ditampilkan di atas.

Resolusi

Pastikan skrip resource yang ditentukan dalam elemen <ResourceURL> 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 Kesalahan

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

    Misalnya, kebijakan berikut tidak menetapkan 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 Kesalahan

Penyimpanan 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 nama elemen XML yang valid, itulah penyebab error.

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

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

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:

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

    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>