Webphere 서버를 사용하고 있습니다. Apache FileUpload 메소드를 사용하여 서블릿을 통해 파일 업로드를 수행하고 있습니다.파일 업로드 중 Ajax 요청이 완료되는 데 오랜 시간이 걸립니다.
요청의 비율이 처리되었음을 나타내는 "백분율"필드를 업데이트하는이 FileUpload에 리스너를 첨부합니다. 요청은 요청을 실행 한 페이지가 응답 완료를 기다릴 필요가 없으므로 사용자에게 빈 페이지 만 표시되지 않도록 요청이 iframe (양식의 대상은 iframe 임)으로 전달됩니다. 진행률 수신기에 대한 참조를 세션에도 추가합니다.
양식 제출을 시작하자마자 JSP 페이지에서 1 초 후 매 초마다 ProgressListener를 검색하고 백분율 필드로 응답하는 서블릿으로 이동하는 ajax 요청을 시작합니다. 이 프로세스는 정상적으로 작동하지만 Websphere에서이 Ajax 요청을 완료하는 데 최대 30 초가 걸릴 수 있습니다! 간단한 Tomcat 서버에서 똑같은 것을 테스트했는데 요청/응답이 1 초 이내에 나옵니다.
무엇이 잘못 될 수 있습니까? 서버 설정입니까? 세션에서 비율을 얻을 수 서블릿 내부 코드를 즉시 요청이로 실행 :
는편집, 감사합니다. 병목 현상은 요청을 클라이언트 브라우저로 전달하는 것 같습니다.
이 문제는 JSP가 컴파일/프리 컴파일되지 않은 경우 유용하지 않습니다. 264MB 파일을 업로드하여 두 번째 아약스 호출로 하나 이상의 아약스 호출을 생성했습니다. 컴파일은 이미 완료되었습니다. –
따라서 Firebug를 사용하여 브라우저에서 아약스 호출을 프로파일 링하고, Fiddler를 사용하여 트래픽을 모니터링하고 서버를 프로파일 링하여 서버의 속도 저하를 확인하십시오. 이 모든 것 사이에서 문제를 발견해야합니다. –