2012-02-06 3 views
0

서버 파일 시스템의 정적 Excel 파일에 연결되는 JSF2 응용 프로그램이 있습니다.Internet Explorer에서 Jboss 서버에서 Excel을 열려고 시도했지만 실패했습니다.

이는 크롬과 파이어 폭스에서 잘 작동
<a href="#{bean.getExcelLink(auction)}">Excel File</a> 

, 또한 IE의 응용 프로그램 내 로컬 윈도우 7 시스템에서 톰캣에서 실행되는 : 링크는이 같은 간단한 HTML이다. 그러나 Jboss AS 7.0.1 Final을 사용하는 Linux 인 준비 환경에서 IE는 자체 창에서 Excel 파일을 열려고 시도하며 많은 가비지 문자를 생성합니다.

이 문제는 응용 프로그램이 Jboss AS가 설치된 Linux에서 실행될 때 IE에서만 발생합니다.

어떤 일이 벌어지고 어떻게 해결되는지에 대한 아이디어가 있습니까?

답변

1

분명히 응답 내용 유형이 잘못되었습니다. 리눅스에서 실패했지만 Windows에서 성공했다는 사실을 감안할 때 이는 플랫폼 별 MIME 유형 매핑이 webapp/server 별 MIME 유형 매핑 대신 컨텐츠 유형을 결정하는 데 사용되었다는 것을 의미 할 수 있습니다 (Linux 머신 MS Office가 설치되어 있지 않으므로 MIME 유형이 .xls 또는 .xlsx 개임을 잘 알고 있지 않습니다. 이렇게하면 직접 연결하지 않고 일반 서블릿을 사용하여 파일을 스트리밍 할 수 있습니다.

이것이 사실이라면 플랫폼 별 MIME 유형 매핑을 사용하는 URLConnection#guessContentTypeFromName()이 아닌 ServletContext#getMimeType()을 사용하여 파일 확장명을 기반으로 콘텐츠 유형을 결정해야합니다. 서버에는 자체적으로 web.xml에 웹 사이트 자체 web.xml에서 재정의하거나 확장 할 수있는 <mime-mapping> 항목의 모든 기본 MIME 유형 목록이 미리 정의되어 있습니다.

+0

감사합니다. BalusC. 나는 직접 연결하고있다. "보기 원본"의 링크는 다음과 같습니다. http : // server_name : 8080/res/32-06Feb2012.154159-uploadLots-test % 20lots-3.xls. 그리고이 문제는 IE에서만 발생합니다. 서브렛을 통과해야한다면 코드가 대답과 비슷한 방식으로 작동해야합니다. http://stackoverflow.com/questions/8991478/action-link-and-download-link-in-one? – Herzog

+0

직접 연결한다면 JBoss 서버 자체의 버그 일 것입니다. (실제로는 그렇게 기대하지 않습니다). 요청에서 반환 한 응답 헤더를 XLS 파일에 표시 할 수 있습니까? – BalusC

+0

그렇게하면 Developer Tools의 HTML 탭 아래에 쓰레기가 많이 생깁니다 (기본적으로 페이지 자체의 내용과 동일합니다.) Script 탭에 다음과 같은 내용이 있습니다. 내가 가야 할 다른 곳? btw 내 브라우저는 IE8입니다. 9로 업데이트해야합니까? – Herzog