То, что я пытаюсь сделать, это получить имя файла с расширением.Клиент может отправлять в остальные API-интерфейсы файлы любого типа, такие как (текст, изображение, документ и т. Д.).
Я пытался выяснить это в течение нескольких дней, но, к сожалению, не смогповезло еще.
Может кто-нибудь помочь мне выбраться из этого?
Я пытался получить из контекста свойств, но ничего не получил
Код ESB:
<api context="/esb" name="OCR" xmlns="http://ws.apache.org/ns/synapse">
<resource methods="POST" uri-template="/upload">
<inSequence>
<property name="messageType" scope="axis2" type="STRING" value="multipart/form-data"/>
<property name="ContentType" value="multipart/form-data" scope="axis2"/>
<property expression="$body//file" name="fileVar" scope="default" type="STRING"/>
<log level="custom">
<property name="CONTENT_DISPOSITION_1" expression="get-property('CONTENT_DISPOSITION')"/>
<property name="CONTENT_DISPOSITION_2" expression="get-property('TRANSPORT_HEADERS')"/>
</log>
<class name="com.example.GetContentDisposition"/>
<respond/>
</inSequence>
<outSequence/>
<faultSequence/>
</resource>
</api>
Вывод:
CONTENT_DISPOSITION_1 = ноль и CONTENT_DISPOSITION_2 = ноль
Я пробовал с помощью пользовательского посредника
пользовательский код посредника:
public boolean mediate(MessageContext context) {
//Accessing Transport Headers
System.out.println("------Transport Headers-------");
Map<String,Object> mapTransportProperties = (Map<String, Object>) ((Axis2MessageContext)context).getAxis2MessageContext().getProperty("TRANSPORT_HEADERS");
for (Map.Entry entry : mapTransportProperties.entrySet()) {
System.out.println("TRANS:" +entry.getKey() + ", " + entry.getValue());
}
return true;
}
Вывод:
------ Транспортные заголовки -------
TRANS: Принять, /
TRANS: Принять-Кодирование, gzip,deflate
TRANS: управление кэш-памятью, без кэширования
TRANS: соединение, поддержание активности
TRANS: длина содержимого, 233
TRANS: тип содержимого, multipart / form-data
TRANS: Хост, localhost: 8280
TRANS: Почтальон-токен, e1261dad-947b-4ece-921b-bbe81d232eb6
TRANS: Пользователь-агент, PostmanRuntime / 7.17.1
Не работаетрасположение заголовка содержимого
В результатах POSTMAN я вижу расположение содержимого.