|
안녕하세요
최범균님의 하이버네이트와 스프링책을 잘 애용하고 있는 독자입니다.
다름이 아니라 이번에 저희가 springmvc 과 SAAJ 를 이용하여 MMS 메세지를 처리하고자 합니다.
그래서 간단하게 이미지를 첨부한 MMS 메세지를 request 받아서 출력해 주는 부분을 우선 구현해 봤는데 아래와 같은 에러가 계속 나옵니다.
[2009-04-18 17:57:43,359] DEBUG [DispatcherServlet.java] - DispatcherServlet with name 'action' processing request for [/newvmg/mmsr30/mm7SubmitReq]
[2009-04-18 17:57:43,359] DEBUG [SimpleMappingExceptionResolver.java] - Resolving exception from handler [null]: org.springframework.web.multipart.MultipartException: Could not parse multipart servlet request; nested exception is org.apache.commons.fileupload.FileUploadException: Processing of multipart/form-data request failed. Stream ended unexpectedly
[2009-04-18 17:57:43,359] DEBUG [SimpleMappingExceptionResolver.java] - Resolving to default view 'error/error' for exception of type [org.springframework.web.multipart.MultipartException]
[2009-04-18 17:57:43,359] DEBUG [SimpleMappingExceptionResolver.java] - Exposing Exception as model attribute 'exception'
[2009-04-18 17:57:43,359] DEBUG [DispatcherServlet.java] - Handler execution resulted in exception - forwarding to resolved error view: ModelAndView: reference to view with name 'error/error'; model is {exception=org.springframework.web.multipart.MultipartException: Could not parse multipart servlet request; nested exception is org.apache.commons.fileupload.FileUploadException: Processing of multipart/form-data request failed. Stream ended unexpectedly}
org.springframework.web.multipart.MultipartException: Could not parse multipart servlet request; nested exception is org.apache.commons.fileupload.FileUploadException: Processing of multipart/form-data request failed. Stream ended unexpectedly
at org.springframework.web.multipart.commons.CommonsMultipartResolver.parseRequest(CommonsMultipartResolver.java:172)
at org.springframework.web.multipart.commons.CommonsMultipartResolver.resolveMultipart(CommonsMultipartResolver.java:149)
at org.springframework.web.servlet.DispatcherServlet.checkMultipart(DispatcherServlet.java:1015)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:851)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
Caused by: org.apache.commons.fileupload.FileUploadException: Processing of multipart/form-data request failed. Stream ended unexpectedly
at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:384)
at org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:116)
at org.springframework.web.multipart.commons.CommonsMultipartResolver.parseRequest(CommonsMultipartResolver.java:165)
... 24 more
[2009-04-18 17:57:43,359] WARN [AbstractCachingViewResolver.java] - View caching is SWITCHED OFF -- DEVELOPMENT SETTING ONLY: This can severely impair performance
[2009-04-18 17:57:43,359] DEBUG [AbstractAutowireCapableBeanFactory.java] - Invoking afterPropertiesSet() on bean with name 'error/error'
[2009-04-18 17:57:43,359] DEBUG [DispatcherServlet.java] - Rendering view [org.springframework.web.servlet.view.JstlView: name 'error/error'; URL [/WEB-INF/vmg/error/error.jsp]] in DispatcherServlet with name 'action'
[2009-04-18 17:57:43,359] DEBUG [AbstractView.java] - Added model object 'exception' of type [org.springframework.web.multipart.MultipartException] to request in view with name 'error/error'
[2009-04-18 17:57:43,359] DEBUG [InternalResourceView.java] - Forwarding to resource [/WEB-INF/vmg/error/error.jsp] in InternalResourceView 'error/error'
[2009-04-18 17:57:43,375] DEBUG [FrameworkServlet.java] - Successfully completed request
실제적으로 호출하는 메소드는 아래와 같습니다.
public void testInitSendInfo() {
Log log = LogFactory.getLog(this.getClass());
try {
File input = new File("data/onlytext.xml");
String soap = FileHelper.bufferReadFileToString(input);
PostMethod post = new PostMethod("http://127.0.0.1:8080/webapp/mmsr30/mm7SubmitReq");
RequestEntity entity = new StringRequestEntity(soap);
post.setRequestEntity(entity);
post.setRequestHeader(
"Content-Type", "multipart/related; boundary=\"NextPart_000_0028_01C19839.8469430\"; type=\"text/xml\"; start=\"<start_MM7_SOAP>\"");
post.setRequestHeader("SOAPAction", "");
HttpClient httpclient = new HttpClient();
try {
int result = httpclient.executeMethod(post);
log.debug("Response status code: " + result);
log.debug("Response body: ");
log.debug(post.getResponseBodyAsString());
} finally {
post.releaseConnection();
}
} catch (Exception e) {
log.error(e.toString(),e);
}
}
apache commons fileupload 쪽에서 boundary 체크시에 에러가 나는것 같은데 어떻게 손을 써야 될지를 모르겠습니다.
혹시 이런 경험이 있으시면 도움을 부탁드리겠습니다.
|