2009-02-26 9 views
1

私はのJasperReports ServerのWebサービスAPIを通じて、JasperReportsのサーバーからレポートデータをつかむために必要のFlexアプリケーションを持っています。 Flex Builder 3 Webサービス消費コードを生成するという素晴らしい仕事をしていますが、1つ例外があります。あなたは、ディレクトリのリストやレポートパラメータの会計、SOAPラッパーとフレックスそれがうまく解析するには、プレーンXMLを返しJRサーバーを求める場合。でもレポートがあれば - しかし、あなたはXMLまたはPDF形式で、それは最初の部分との報告など、いくつかの記述XMLとマルチMIMEメッセージとして戻ってくるかどうか、レポート自体を求める場合それ自体はXML - 第2部分です。 フレックスはマルチパートメッセージの処理方法を知らず、無効なメッセージのXMLについて不平を言っています。FlexでマルチパートSOAPレスポンスを解析するには?

ここに応答のサンプルがあります。私の現在の戦略は、文字列の解析とビットの個別管理です。しかしフレックスには、これを処理する組み込みメソッドがありますか? (私はいずれかを見つけることができませんしてきた。)

------=_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äâ 

答えて

1

は、私が言うつもりです、私は信じているだけである:私が間違っている可能性があり、私はこれを試していないので。

多分選択肢がありません。 Flex HTTPService(または使用しているもの)は、非常に多くのデータ形式しか提供できません。 hereを参照してください。カスタムストリームの場合は、objectとして取得し、独自のデコーダに渡す必要があります。 FlexではMIMEメッセージの解析は行われませんが、送信されているコンテンツを識別するためにサーバーが(通常はブラウザがどのように動作するのか)に依存しているようです。サーバーがテキストファイルのみを送信し、内容の種類をaudio/mpegと変更すると、同じ問題が発生すると思います。 Flexがテキストを扱うのに熱心でも、

この実験を行うことができたら(MIMEタイプのビデオなどのテキストファイルを使って)、私たちに知らせてください。

一方、SerializationFilterをご覧になり、PDFの新しいMIMEタイプを追加してください!

Flex 4とHTTPMultiServiceでは、人生が少し楽になることを願っています。