2009-12-03 6 views
4

MTOM 및 Spring WS를 사용하여 서버에서 클라이언트로 대용량 파일을 보내고 싶습니다. 나는 이것이 이것이 이런 유형을위한 최선의 접근법이 아니라는 것을 깨닫는다. 그러나 그것은 요구 사항이다. 나는 MTOM을 설정했고, 약 50MB의 작은 파일들에 대해 훌륭하게 작동합니다. 큰 파일에 대한 메모리 오류가 발생하고 다른 힙 공간 크기를 변경하여 약간 큰 파일을 보낼 수 있지만 1GB에 가까운 파일은 보낼 수 없습니다. 1GB는 이것에 대한 나의 테스트 케이스이다. 서버에서 클라이언트로 MTOM 서비스를 스트리밍하거나 청크 할 수 있습니까? SaajSoapMessageFactory를 사용하여 Java 6 업데이트 17, Tomcat 6 및 Spring WS 1.5.7을 사용하고 있습니다.Stream Web Services Framework의 MTOM 웹 서비스 스트림

jax-ws를 사용하여 스트리밍하는 예제를 발견했지만이 방법을 Spring WS 끝점에 통합하는 방법을 잘 모르겠습니다.

Optimizing Binary Data Transmission Using MTOM/XOP

+0

행운이 있나요? 나는 여전히이 문제로 고심하고있다 ... –

답변

5

어제, 나는 큰 파일을 업로드와 같은 문제가 있습니다. 마지막으로 그 해결책을 찾을 수있었습니다. Spring WS는 큰 파일을 업로드하는 동안 메모리 대신 파일을 사용할 수있는 org.springframework.ws.soap.axiom.AxiomSoapMessageFactory이라는 사용자 정의 된 Axiom 메시지 팩토리를 가지고있다. 구성에서 수행해야 할 유일한 변경 사항은 사용자 정의 특성으로 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> 

는 봄-WS는 자동으로 큰 문서의 업로드를 피기 위해 임시 파일을 사용합니다.

+0

Axis2 1.5.1을 사용하여 클라이언트 측에서 문제를 해결했다. 나는 공리를 사용한다고 믿는다. –

+0

MTOM과 spring 및 websphere를 사용하여 대용량 파일을 업로드 할 때 가장 좋은 조합/접근 방식은 무엇입니까? SAAJ 또는 AXIOM 또는 JAX-WS 또는 CXF 또는 http 클라이언트? 아니면 더 좋은 점이 있습니까? 성능, 메모리 사용량, 업로드 시간이 더 좋습니다. @DanPolites – AJJ

관련 문제