Вопрос

У меня есть Гибкий приложение, которому необходимо получать отчетные данные из Сервер JasperReports, через API веб-служб сервера JasperReports. Гибкий конструктор 3 выполняет хорошую работу по генерации кода использования веб-сервисов, за одним исключением.Если вы запрашиваете список каталогов или учет параметров отчета, Младший сервер возвращает равнину XML - ФАЙЛ в МЫЛО обертка и Гибкий разбирает это просто отлично.Однако, если вы запросите сам отчет, независимо от того, находится ли в XML - ФАЙЛ или PDF формат, он возвращается в виде составного ПАНТОМИМА сообщение с некоторым описательным XML - ФАЙЛ как первая часть и отчет - даже если сам отчет является XML - ФАЙЛ -- как вторая часть. Гибкий не знает, что делать с составными сообщениями и просто жалуется на недопустимые XML - ФАЙЛ.

Вот пример ответа.Моя текущая стратегия заключается в том, чтобы выполнить некоторый синтаксический анализ строк и управлять битами по отдельности.Но делает Гибкий есть какие-нибудь встроенные методы для обработки этого?(Я не смог найти ни одного.)

------=_Part_2_27050467.1235668849951
Content-Type: text/xml; charset=UTF-8
Content-Transfer-Encoding: binary
Content-Id: <0F082AF1DAF83B3077B1867B4FC8AAA6>

<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
    <ns1:runReportResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://axis2.ws.jasperserver.jaspersoft.com">
        <runReportReturn xsi:type="xsd:string">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;\n&lt;operationResult version=&quot;2.0.1&quot;&gt;\n\t&lt;returnCode&gt;&lt;![CDATA[0]]&gt;&lt;/returnCode&gt;\n&lt;/operationResult&gt;\n
        </runReportReturn>
    </ns1:runReportResponse>
</soapenv:Body>
</soapenv:Envelope>
------=_Part_2_27050467.1235668849951
Content-Type: application/pdf
Content-Transfer-Encoding: binary
Content-Id: <report>

%PDF-1.4\n%âãÏÓ\n1 0 obj <</Filter/FlateDecode/Length 29>>stream\nx+är\ná26S°00S\bIár\rá\näâ
Это было полезно?

Решение

То, что я собираюсь сказать, - это только то, во что я верю: возможно, я ошибаюсь, поскольку я этого не пробовал.

Я не думаю, что у тебя есть большой выбор.Flex HTTPService (или что бы вы ни использовали) может предлагать не так много (или так мало) форматов данных.Видишь здесь.Для любого пользовательского потока вам нужно будет извлечь его как object и передайте его через свой собственный декодер.Похоже, что Flex не выполняет никакого синтаксического анализа сообщения MIME, но зависит от сервера (что также является типичным поведением браузеров) для идентификации передаваемого контента.Если сервер отправляет только текстовый файл, но изменяет тип содержимого, чтобы сказать audio/mpeg Я думаю, у вас возникнет та же проблема.Даже когда Flex знает, как обращаться с текстом.

Если у вас когда-нибудь появится время провести этот эксперимент (с текстовыми файлами в виде видео типа MIME или чего-то еще, что вам больше нравится), дайте нам знать.

Тем временем вы можете взглянуть на Фильтр сериализации и продолжайте и добавьте новый MIME-тип для PDF!

Надеюсь, жизнь станет немного проще с Flex 4 и Службу httpmultiservice.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top