Frage

Ich habe eine Flex Anwendung, die greifen Berichtsdaten von einer Jasper Server , durch die Jasper Server Web Services API muss. Flex Builder 3 ist eine schöne Aufgabe, den Web-Service Verbrauch Code zu erzeugen, mit einer Ausnahme. Wenn Sie einen Verzeichnisliste oder eine Bilanzierung von Berichtsparametern fragen, JR Server gibt schlicht XML in SOAP Wrapper und Flex parst es einfach gut. Wenn Sie jedoch fragen Sie nach einem Bericht selbst, ob in XML oder PDF Format, es kommt wieder als Multipart- MIME Nachricht mit einigen beschreibenden < em> XML als erster Teil und der Bericht - auch wenn der Bericht selbst ist XML - als zweiten Teil. Flex weiß nicht, was mit mehrteiliger Nachrichten zu tun und nur beschwert sich über ungültige XML .

Hier ist ein Beispiel der Antwort. Meine aktuelle Strategie ist es, einige Zeichenfolgenanalyse tun und die Bits einzeln verwalten. Aber ist Flex haben keine integrierten Methoden zu handhaben? (Ich habe es nicht gelungen, irgendwelche zu finden.)

------=_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äâ
War es hilfreich?

Lösung

Was ich sagen werde, ist nur das, was ich glaube: ich falsch sein kann, da ich diese aus nicht versucht haben,

.

Ich glaube nicht, dass Sie viel Auswahl. Flex HTTPService- (oder was auch immer Sie verwenden) können nur so viele bieten (/ oder so wenige) Datenformate. Siehe hier . Für jeden benutzerdefinierten Strom haben Sie es als object abrufen und durch den eigenen Decoder übergeben. Es scheint, dass Flex keine Parsen von MIME-Nachricht nicht tun, sondern hängt von (was auch ist, wie Browser verhalten sich typischerweise) auf den Server, den Inhalt zu identifizieren, die übertragen wird. Wenn der Server sendet nur eine Textdatei, sondern ändert sich die Art des Inhalts zu sagen audio/mpeg Ich glaube, Sie das gleiche Problem haben. Selbst wenn Flex weiß heißen Text zu behandeln.

Wenn Sie sich jemals um zu tun, dieses Experiment bekommen (mit Textdateien als MIME-Typ Video oder was auch immer Sie wähnt) lassen Sie es uns wissen.

der Zwischenzeit können Sie einen Blick auf SerializationFilter und gehen auf und fügen Sie einen neuen MIME-Typ für PDF!

Hoffentlich, wird das Leben ein wenig einfach, mit Flex 4 und die Httpmultiservice .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top