< All Topics
Print

שמירת ZIP במחשב

כללי

קיימים מצבים, כמו לדוגמה בעבודה מול Doxi, שאנחנו צריכים לפנות ל API שיחזיר לנו ZIP. (למשל Attachments של תהליך)

במקרה כזה, כאשר נבצע קריאה ל API (או קריאה ישירה להורדת ZIP) נקבל הודעת שגיאה.

במקרה זה יש לאפשר גישה לסוג הקובץ הזה לעבור את EI.

הגדרת EI על מנת לאפשר גישה

  1. יש לפתוח את הקובץ axis2.xml במצב עריכה.
    הקובץ נמצא בנתיב:
    wso2ei-6.6.0\conf\axis2\axis2.xml
  2. יש להוסיף רשימה לתגית messageBuilders –
&lt;messageBuilder contentType="application/zip" class="org.apache.axis2.format.BinaryBuilder"/>
  1. יש להוסיף רשומה לתגית messageFormatters –
&lt;messageFormatter contentType="application/zip" class="org.wso2.carbon.relay.ExpandingMessageFormatter"/>

הגדרות שמירת קובץ

לאחר הקריאה לקובץ (או ל API שיחזיר PDF), יש להוסיף שני מאפיינים (Properties):

שם הקובץ – אפשר לשים אותו קבוע או כמובן לשנות אותו עם expression

&lt;property name="transport.vfs.ReplyFileName" scope="transport" type="STRING" value="attachments.zip"/>

OUT_ONLY – מאפיין חובה עם הערך true כדי לומר ל EI שאין צפי ל Response אחרי שהפעולה הבאה תתבצע (במקרה שלנו אחרי שמירת קובץ אין תגובה)

&lt;property name="OUT_ONLY" scope="default" type="STRING" value="true"/>
  1. ביצוע קריאה לקובץ מקומי – הוא תקיית היעד אליה אנחנו רוצים לשמור את הקובץ

דוגמת קוד:

&lt;?xml version="1.0" encoding="UTF-8"?>
&lt;sequence name="saveAttachmentsFromDoxi" trace="disable" xmlns="http://ws.apache.org/ns/synapse">
    &lt;call>
        &lt;endpoint>
            &lt;http method="get" uri-template="https://doxi-sign.com/api/ex/flow/{uri.var.signFlowId}/attachments">
                &lt;suspendOnFailure>
                    &lt;initialDuration>-1&lt;/initialDuration>
                    &lt;progressionFactor>1&lt;/progressionFactor>
                &lt;/suspendOnFailure>
                &lt;markForSuspension>
                    &lt;retriesBeforeSuspension>0&lt;/retriesBeforeSuspension>
                &lt;/markForSuspension>
            &lt;/http>
        &lt;/endpoint>
    &lt;/call>
    &lt;property name="transport.vfs.ReplyFileName" scope="transport" type="STRING" value="attachments.zip"/>
    &lt;property name="OUT_ONLY" scope="default" type="STRING" value="true"/>
	&lt;call>
        &lt;endpoint>
            &lt;address uri="vfs:file:///C:/WSO2/Files/Globrands">
                &lt;suspendOnFailure>
                    &lt;initialDuration>-1&lt;/initialDuration>
                    &lt;progressionFactor>1&lt;/progressionFactor>
                &lt;/suspendOnFailure>
                &lt;markForSuspension>
                    &lt;retriesBeforeSuspension>0&lt;/retriesBeforeSuspension>
                &lt;/markForSuspension>
            &lt;/address>
        &lt;/endpoint>
    &lt;/call>
    &lt;respond/>
&lt;/sequence>

תוכן עיניינים