2017-09-20 32 views
5

Tôi có một ứng dụng web trên Wildfly 10 và trong thư mục ứng dụng web tôi đã đặt một tệp zip mà tôi muốn được tải xuống khi người dùng nhấp vào liên kết. Trên giao diện người dùng Tôi cóVấn đề loại nội dung trong Wildfly 10

Snippet

<div class="tyDiv" onclick="window.open('request.getContextPath() + "/downloads/Installer.exe")%>','_self')"> 
</div> 

Nó tạo url đúng như

"http://192.168.2.123:8080/comp/downloads/Installer.exe" 


Content-Type:text/html;charset=UTF-8 

này hoạt động trong JBoss6 như mong đợi. Nó tải xuống tệp exe nhưng trong Wildfly nó hiển thị tất cả các ký tự rác trên màn hình vì kiểu nội dung của nó là văn bản/html

Tôi đã thử đặt loại mime trong tệp standalone-full.xml nhưng không hoạt động.

<mime-mappings> 
    <mime-mapping name="css" value="text/css"/> 
    <mime-mapping name="exe" value="application/octet-stream"/> 
</mime-mappings> 
+0

Không thể tạo lại hành vi này trong vanilla Wildfly-10.0.0. Trình tự các bước của tôi là '' 'triển khai cd; mkdir foo.war; echo bar> foo.war/bar.exe, curl -v http: // localhost: 8080/foo/bar.exe''' và kết quả '' 'Content-Type''' là' '' application/octet- stream'''. Phải có cái gì đó khác. Kiểm tra xem không có tùy chỉnh 'mime-mapping' trong web.xml. –

+0

Không. Không có bản đồ mime thay vì tôi đã thử thêm nó vào web.xml nhưng nó không hoạt động, – happy

+0

Tôi khuyên bạn nên thử cách tiếp cận của tôi trên ** vanilla ** Cài đặt Wildfly. Sau đó thử thêm các tạo tác vào mảnh dự án của bạn theo từng mảnh để xem khi nào nó lại sai. –

Trả lời

0

Các tài liệu tại undertow.io cho thấy làm thế nào để tự thiết lập kiểu MIME mỗi câu trả lời, ví dụ. exchange.getResponseHeaders().put(Headers.CONTENT_TYPE, "application/octet-stream"); trong khi tệp có ánh xạ kiểu MIME có thể được gọi là web.xml (đảm bảo tệp chính xác đang được tham chiếu). Bên cạnh đó, tôi có thể tưởng tượng rằng bộ lọc servlet có thể không được cấu hình như nó nên - và nó gửi yêu cầu mà chúng không nên kết thúc (đã tìm thấy https://stackoverflow.com/tags/servlet-filters/info). trong khi câu trả lời ở đây thậm chí còn cho thấy cách thêm kiểu MIME vào thời gian chạy: https://stackoverflow.com/a/38021097/549372 (bình thường là vẫn phục vụ application/octet-stream khi viết luồng nhị phân vào đầu ra - điều này có nghĩa là nó cũng có thể là kết quả của luồng đầu vào sai).

Các vấn đề liên quan