2010-11-22 4 views
0

glassfish에 swf 파일을 제공하는 데 문제가 있습니다. 내 응용 프로그램에는 Datatable에 TableTools 플러그인을 사용하는 약간의 swf 파일이 있습니다. 모든 브라우저에서이 페이지를 열려고하면 모든 것이 잘되지만 Internet Explorer에서는 동작이 매우 달라집니다. 도달하려고하면 그것과 직접 URL을 경고 브라우저가 파일 (열기, 저장, 다른 이름으로 저장)과 함께 할 수있는 선택 요청, 내가 열어하지만 아무것도 표시되지 않습니다 .. 이 문제는 IE에서만 나타납니다. "이 리소스는 문서로 해석되었지만 MIME 유형 application/x-shockwave-flash로 전송 된 리소스입니다."Glassfish V3를 사용하여 IE에서 swf 파일을 제공하는 데 문제가 발생했습니다.

하지만 난 몰라 어떻게 설정 올바른 콘텐츠 유형을 할 수 내 web.xml의 : 오류를로드하는 SWF 파일과 마지막 3 개 행을 볼 수 있습니다 아래의 이미지에서

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> 
    <display-name>ManagementConsole</display-name> 
    <filter> 
     <filter-name>jersey</filter-name> 
     <filter-class>com.sun.jersey.spi.container.servlet.ServletContainer</filter-class> 
     <init-param> 
      <param-name>com.sun.jersey.config.property.WebPageContentRegex</param-name> 
      <param-value>/(img|js|css)/.*</param-value> 
     </init-param> 
     <init-param> 
      <param-name>com.sun.jersey.config.property.JSPTemplatesBasePath</param-name> 
      <param-value>/WEB-INF/jsp</param-value> 
     </init-param> 
    </filter> 
    <filter> 
     <filter-name>RedirectWrongRequest</filter-name> 
     <filter-class>com.italtel.patchfinder.filters.RedirectWrongRequest</filter-class> 
     <init-param> 
      <param-name>exclude</param-name> 
      <param-value>/LoginServlet</param-value> 
     </init-param> 
    </filter> 
    <filter-mapping> 
     <filter-name>RedirectWrongRequest</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping> 
    <filter-mapping> 
     <filter-name>jersey</filter-name> 
     <url-pattern>/admin/*</url-pattern> 
    </filter-mapping> 
    <servlet> 
     <servlet-name>LoginServlet</servlet-name> 
     <jsp-file>/WEB-INF/jsp/login.jsp</jsp-file> 
    </servlet> 
    <servlet> 
     <servlet-name>LoginError</servlet-name> 
     <jsp-file>/WEB-INF/jsp/loginError.jsp</jsp-file> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>LoginServlet</servlet-name> 
     <url-pattern>/LoginServlet</url-pattern> 
    </servlet-mapping> 
    <servlet-mapping> 
     <servlet-name>LoginError</servlet-name> 
     <url-pattern>/LoginError</url-pattern> 
    </servlet-mapping> 
    <jsp-config> 
     <taglib> 
      <taglib-uri>http://java.sun.com/jstl/core</taglib-uri> 
      <taglib-location>/WEB-INF/c.tld</taglib-location> 
     </taglib> 
    </jsp-config> 
    <security-constraint> 
     <display-name>AdminPages</display-name> 
     <web-resource-collection> 
      <web-resource-name>admin</web-resource-name> 
      <description/> 
      <url-pattern>/admin/*</url-pattern> 
      <http-method>GET</http-method> 
      <http-method>POST</http-method> 
      <http-method>HEAD</http-method> 
      <http-method>PUT</http-method> 
      <http-method>OPTIONS</http-method> 
      <http-method>TRACE</http-method> 
      <http-method>DELETE</http-method> 
     </web-resource-collection> 
     <auth-constraint> 
      <role-name>admin</role-name> 
      <!--<role-name>USERS</role-name>--> 
     </auth-constraint> 
     <user-data-constraint> 
      <!--None in http mode, Confidential in https mode--> 
      <!--<transport-guarantee>NONE</transport-guarantee>--> 
      <transport-guarantee>CONFIDENTIAL</transport-guarantee> 
     </user-data-constraint> 
    </security-constraint> 
    <login-config> 
     <auth-method>FORM</auth-method> 
     <form-login-config> 
      <form-login-page>/LoginServlet</form-login-page> 
      <form-error-page>/LoginError</form-error-page> 
     </form-login-config> 
     <!--<realm-name>userauth</realm-name>--> 
    </login-config> 
    <security-role> 
     <description/> 
     <role-name>admin</role-name> 
     <!--<role-name>USERS</role-name>--> 
    </security-role> 
    <welcome-file-list> 
     <welcome-file>Menu</welcome-file> 
    </welcome-file-list> 
</web-app> 

(와 올바른 콘텐츠 유형)

http://i.stack.imgur.com/Jh98S.png

+0

헤더 : 요청 URL : HTTPS : //0.0.0.0/ManagementConsole/swf/a.swf 요청 방법 : GET 상태 코드 : 200 OK 요청 헤더 수락 : 응용 프로그램/XML, 응용 프로그램/XHTML사용자 에이전트 : Mozilla/5.0 (Windows; U; Windows NT 6.1, ko-kr); xml, text/html; q = 0.9, text/plain; q = 0.8, image/png, */*; q = AppleWebKit/534.7 (도마뱀 붙이와 같은 KHTML은) 크롬/7.0.517.44 사파리/534.7 응답 헤더 수락-범위는 : 1871 의 Content-Type : application/x-shockwave-flash의 날짜 : 월, 22 콘텐츠 길이 바이트 2010 년 11 월 15 일 15시 9 분 11 초 GMT ETag : W/"1871-1290437702000" 마지막으로 수정 된 날짜 : 2010 년 11 월 22 일 월요일 14:55:02 GMT 서버 : GlassFish v3 X-Powered-By : Servlet/3.0 – sebbalex

답변

0

나는 해결책을 발견! 문제는 Internet Explorer 6/7/8/9의 버그 였고 이전 버전인데 보안 연결 ssl을 사용하면 swf 파일로드가 IE의 버그 때문에 성공하지 못합니다. 내 응용 프로그램에서 필터 캐시를 대체하여이 문제를 해결했습니다

 hresponse.setDateHeader("Expires", -1); 
     hresponse.setDateHeader("Last-Modified", System.currentTimeMillis()); 
     hresponse.setHeader("Pragma", ""); 
     hresponse.setHeader("cache-control", "must-revalidate"); 

희망은 다른 사람에게 도움이 될 것입니다! 감사

관련 문제