2009-08-08 9 views
7

Điều này khá dễ dàng, nhưng vì một lý do nào đó gần như mọi thứ tôi cố gắng dường như chỉ phát ra lỗi 'không tìm thấy' khi tôi treo nó lên trình duyệt web.Cung cấp nội dung tĩnh từ jarfile với Jetty?

Tôi có một bối cảnh tĩnh đơn và đối với ResourceBase tôi có 'tệp: jar:/path/to/myjar!/.'... bất kỳ ý tưởng nào tôi đang thiếu?

Trả lời

2

Cố gắng tải các tài nguyên từ classloader như thế này,

ClassLoader classLoader = 
       Thread.currentThread().getContextClassLoader(); 

     if (classLoader == null) { 
      classLoader = getClass().getClassLoader(); 
     } 


     InputStream stream = classLoader.getResourceAsStream(name); 

cách tiếp cận của bạn giả định đường dẫn tuyệt đối và nó có thể không đúng khi máy chủ được triển khai. Bình có thể nằm trong một JAR (WAR) khác hoặc một thư mục tạm thời.

+0

Tôi có thể dễ dàng thay đổi đường dẫn sau, tôi chỉ thấy nếu tôi có thể làm việc này ở tất cả, và tôi không tải một servlet từ tệp JAR - chỉ tĩnh .html. –

+1

Tôi không nghĩ cú pháp của bạn là đúng. Nó phải là, jar: tệp: /path/to/my.jar!/Gói/tệp Nếu đây là trên Windows, bạn cũng có thể cần ký tự ổ đĩa. –