JasperReports Server Web Services APIを介してJasperReports Serverからレポート データを取得する必要があるFlexアプリケーションがあります。Flex Builder 3は、1 つの例外を除いて、Web サービスの消費コードをうまく生成します。ディレクトリ リストまたはレポート パラメータのアカウンティングを要求すると、JR ServerはSOAPラッパーでプレーンなXMLを返し、 Flexはそれを適切に解析します。ただし、レポート自体を要求すると、XML形式かPDF形式かに関係なく、説明的なXMLを含むマルチパートMIMEメッセージとして返されます。最初の部分とレポート (たとえレポート自体がXMLであっても)が 2 番目の部分です。Flexはマルチパート メッセージをどう処理すればよいか分からず、無効なXMLについて不平を言うだけです。
応答のサンプルを次に示します。私の現在の戦略は、文字列の解析を行い、ビットを個別に管理することです。しかし、Flexにはこれを処理するための組み込みメソッドがありますか? (私は何も見つけることができませんでした。)
------=_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"><?xml version="1.0" encoding="UTF-8"?>\n<operationResult version="2.0.1">\n\t<returnCode><![CDATA[0]]></returnCode>\n</operationResult>\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äâ