2011-05-05 3 views
3

Tomcat에 앱을 배포 할 때 흥미로운 문제가 있습니다. 나는 Acts_as_flying_saucer gem을 사용하여 html을 PDF로 변환합니다. gem/plugin이하는 일은 html보기를 렌더링 한 다음 java SAX 프로세서를 사용하여 서버의 TMP 디렉토리에 표준 PDF/1.4 호환 파일을 렌더링합니다.Jruby/JRack Tomcat의 Sendfile

내가 겪고있는 문제는 플러그인이 파일을 브라우저에 보내도록 호출 할 때 발생합니다. 0 Byte 파일을 보냅니다. Rails 로그를 보면, /tmp/41c986f5e6249ce24c7698b6494796e0.pdf

톰캣 로그는 파일을 보낸 것처럼 200 상태를 보냈다고 말합니다. 그러나 에있는 파일에는/tmp/디렉토리에 정보가 있으며 브라우저에 전송 된 파일은 입니다.

내가 가진 가장 좋은 추측은 send_file 메소드에 비정상적인 것이 있다는 것입니다.

그것은 webrick에서 잘 작동합니다. 몇 가지 서로 다른 Tomcat 인스턴스에 WAR를 배포했습니다 ... 로그에 모두 잘 작동하는 것으로 보입니다.

더 많은 정보가 필요하거나 내가 이이 문제를 추적하는 방법에 대한 아이디어가 있다면 알려주십시오.

덕분에, - 짐

답변

3

은 Tomcat이 'X-sendfile을'다른 웹 서버가 수행 방식을 이해하지 않는 것 같습니다.

은 "수정"주석하는 것입니다 : 당신의 환경에서

config.action_dispatch.x_sendfile_header = "X-Sendfile" 

/production.rb이 다른 사람을 도움이

희망.

-jim

+0

감사합니다! – Patrick

+0

추적하기가 매우 힘들었습니다. 다른 사람에게 도움이 되었기 때문에 기쁩니다. –

1

미들웨어 스택에이 미들웨어를 추가 할 수도 있습니다. 나에게 디버깅 시간을 저장

https://gist.github.com/958096

+0

그것은 그것을 처리하는 흥미로운 방법입니다. –