Spring Web Services 프레임 워크에서 MTOM 웹 서비스를 스트리밍합니다

StackOverflow https://stackoverflow.com/questions/1842843

  •  12-09-2019
  •  | 
  •  

문제

MTOM 및 Spring WS를 사용하여 서버에서 클라이언트로 큰 파일을 보내고 싶습니다. 나는 이것이 이런 유형의 사물에 대한 최선의 접근법이 아니라는 것을 알고 있지만 그것은 요구 사항입니다. MTOM을 설정했으며 약 50MB의 작은 파일에 적합합니다. 더 큰 파일에 대한 메모리 오류가 발생하지 않고 다른 힙 공간 크기를 변경함으로써 약간 더 큰 파일을 보낼 수 있지만 1GB에 가까운 것은 없습니다. 1GB는이 테스트 사례입니다. MTOM 서비스를 서버에서 클라이언트로 스트리밍하거나 청크하려면 어떻게해야합니까? SaajsoapMessageFactory와 함께 Java 6 Update 17, Tomcat 6 및 Spring WS 1.5.7을 사용하고 있습니다.

JAX-WS로 스트리밍의 예를 찾았지만이를 스프링 WS 엔드 포인트에 통합하는 방법을 잘 모르겠습니다.

MTOM/XOP를 사용하여 이진 데이터 전송 최적화

도움이 되었습니까?

해결책

어제 큰 파일을 업로드하는 것과 같은 문제가 있습니다. 마침내 나는 그것에 대한 해결책을 찾을 수있었습니다. Spring WS에는 맞춤형 공리 메시지 공장이 호출됩니다 org.springframework.ws.soap.axiom.AxiomSoapMessageFactory 큰 파일을 업로드하는 동안 메모리 대신 파일을 사용할 수 있습니다. 구성에서해야 할 유일한 변경 사항은 사용자 정의 속성으로 Bean을 정의하는 것입니다.

<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>

ClassPath 에서이 구성 및 Axiom 클래스를 사용할 수 있으면 Spring-WS는 자동으로 대형 문서 업로드를 돼지를 돼지를 자동으로 사용합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top