Frage

mit MTOM und Spring WS

Ich mag große Dateien vom Server auf den Client senden. Mir ist klar, dass dies für diese Art der Sache nicht der beste Ansatz ist, aber es ist eine Anforderung. Ich habe MTOM eingerichtet und es funktioniert gut für kleine Dateien, um 50MB. Ich erlebe aus Speicherfehler für größere Dateien und durch verschiedene Haufen Raumgrößen zu ändern, kann ich in der Nähe zu 1 GB etwas größeren Dateien, aber nichts senden. 1 GB ist mein Testfall dafür. Wie kann ich den MTOM-Service vom Server zum Client streamen oder Klumpen? Ich bin mit Java 6 Update 17, Tomcat 6 und Spring WS 1.5.7 mit dem SaajSoapMessageFactory.

Ich fand ein Beispiel für das Streaming mit JAX-WS, aber ich bin nicht sicher, wie dies zu integrieren in einen Frühling WS Endpunkt.

Optimierung der binären Datenübertragung über MTOM / XOP

War es hilfreich?

Lösung

Gestern habe ich habe das gleiche Problem mit großen Dateien hochladen. Schließlich war ich in der Lage, die Lösung für das zu finden. Frühling WS hat eine angepasste Axiom Nachricht Werk namens org.springframework.ws.soap.axiom.AxiomSoapMessageFactory die Datei anstatt im Speicher verwenden können, während große Dateien hochladen. Die einzige Änderung in Ihrer Konfiguration zu tun, ist den Bean mit benutzerdefinierten Eigenschaften definieren.

<bean id="messageFactory" class="org.springframework.ws.soap.axiom.AxiomSoapMessageFactory">
    <property name="payloadCaching" value="false" />
    <property name="attachmentCaching" value="true" />
    <property name="attachmentCacheThreshold" value="1024"/>
</bean>

Wenn Sie diese Konfiguration und Axiom Klassen in Klassenpfad zur Verfügung haben, Frühling-ws verwendet automatisch temporäre Dateien zurück großes Dokument-Uploads Schweinchen.

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