2012-12-21 40 views
6

tôi nhúng một applet Java như thế này:Webkit cố gắng để tải về lớp applet Java trước khi đọc nó từ JAR

<object type="application/x-java-applet"> 
    <param name="codebase" value="/path/to/jar" /> 
    <param name="archive" value="myapplet.jar" />' + 
    <param name="code" value="my.package.MyClass" /> 
</object> 

Các applet hoạt động tốt trên mọi trình duyệt nhưng trình duyệt Webkit (Chrome và Safari) đều gây phiền nhiễu các máy chủ với một yêu cầu vô dụng mà cố gắng để tải về tập tin MyClass (đó là trong JAR và hoạt động tốt từ đó) từ máy chủ:

Chrome sẽ hiển thị lỗi này trong giao diện điều khiển:

GET http://localhost/test/my.package.MyClass 404 (Not Found) 

Điều tương tự cũng xảy ra khi sử dụng thẻ <embed> thay vì <object> nhưng không xảy ra khi sử dụng thẻ <applet> không dùng nữa.

Có khả năng ngăn tệp này tải xuống không? Tôi đã nghe tin đồn về thông số codebase_lookup nhưng đặt thông số này thành false không thay đổi bất cứ điều gì.

+0

Nếu bạn tiếp tục kiểm soát ứng dụng của bạn, tôi đề nghị chỉ sử dụng thẻ APPLET không được chấp nhận vì nó hoạt động chính xác. Chắc chắn hỗ trợ cho nó có thể được giảm xuống sau đó, nhưng trong thời gian đó một số giải pháp tốt hơn có thể sẽ xuất hiện. Chắc chắn mọi thứ trở nên tồi tệ hơn nếu bạn giao ứng dụng cho khách hàng của mình. – h22

+0

Sử dụng thẻ applet không phải là giải pháp, đó là giải pháp thay thế. Tôi hy vọng cho một câu trả lời có thể giải thích tại sao Webkit đang cố tải xuống tệp lớp và cách tắt hành vi này. Có thể đó là lỗi Webkit và ai đó biết vị trí của báo cáo lỗi chứa nhiều thông tin hơn về vấn đề này. Ai biết. – kayahr

+0

Vâng, đó là giải pháp thay thế, không phải là câu trả lời. – h22

Trả lời

2

Tôi phát hiện thấy sự cố này xảy ra khi thông số mã số của applet được đặt trong thẻ param. Nếu bạn di chuyển nó đến đối tượng tương ứng 's thuộc tính, lỗi 404 không còn xuất hiện:

<object type="application/x-java-applet" code="my.package.MyClass"> 
    <param name="codebase" value="/path/to/jar" /> 
    <param name="archive" value="myapplet.jar" /> 
</object> 

Tested on:

Windows 8, Java 1.7.0_25: Chrome 28, Firefox 23, IE10

OS X 10.6.8, Java 1.6.0_51: Chrome 28, Firefox 23, Safari 5.1.9

OS X 10.7.5, Java 1.7.0_25: Firefox 23, Safari 6.0.5

OS X 10.8.4, Java 1.7.0.25: Firefox 23, Safari 6.0.5

OS X 10.9, Java 1.7.0_25, Firefox 23, Safari 7.0

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