2012-04-03 32 views
5

Trong Websphere, bạn có thể tạo một "Thư viện được chia sẻ" và liên kết với các ứng dụng. Tôi muốn biết, về vị trí trong classpath, vị trí của libs được chia sẻ là gì? Điều đó có nghĩa, tôi muốn biết, trong trường hợp tài nguyên trùng lặp, sẽ có mức độ ưu tiên cao hơn để được tải, Thư viện được chia sẻ hoặc bản thân EAR/WAR. Ví dụ, giả định trong ứng dụng của tôi, tôi có một tài nguyên gọi là appConfig.xml, và tôi đang tạo một thư mục cục bộ trong máy chủ ứng dụng, đặt một tệp appConfig.xml khác trong thư mục đó. Nếu tôi cố gắng tải các tài nguyên (ví dụ: luồng đầu vào mở) trong ứng dụng của tôi, tệp nào sẽ được tải?Thư viện được chia sẻ trên Websphere "Ưu tiên"?

Tôi đã tìm kiếm một thời gian và không thể tìm thấy hư không đề cập đến điều này. Mặc dù tôi có thể tự mình thử bằng cách thử nghiệm, tôi muốn biết hành vi được mong đợi chính thức, nếu có.

Cảm ơn rất nhiều

Trả lời

4

Thứ tự giữa các trình nạp lớp sử dụng cái gọi là "lớp trình nạp lớp", là "lớp cha đầu tiên" (và lớp/tài nguyên ứng dụng cuối cùng) hoặc "cuối cùng" (với lớp/tài nguyên ứng dụng trước). Đối với một bộ nạp lớp ứng dụng duy nhất, trật tự đường dẫn lớp sẽ là:

  1. đường dẫn lớp mô-đun
  2. phụ thuộc đường dẫn lớp (Class-Path trong MANIFEST.MF)
  3. chia sẻ đường dẫn lớp thư viện

Không có tùy chọn cấu hình để thay đổi thứ tự. Tôi không nghĩ rằng việc đặt hàng này rõ ràng là nhà nước trong tài liệu, nhưng tôi cũng nghĩ rằng nó không có khả năng thay đổi. Bất kể, tôi sẽ không khuyên bạn nên dựa vào nó. Tôi khuyên bạn nên đảm bảo bạn sử dụng tên tài nguyên/lớp duy nhất trong một trình nạp lớp đơn.

+2

Ngoài ra khi bạn có những nghi ngờ và muốn biết WAS đang sử dụng thư viện như thế nào, bạn có thể sử dụng giao diện "WebSphere web console -> Gỡ rối -> Trình xem lớp" trên bảng điều khiển quản trị của WAS. – MrJames

+1

Có, trình xem trình nạp lớp có thể hữu ích để xác định cách máy chủ xảy ra để lắp ráp mọi thứ. Nó không nhất thiết phải giải thích lý do căn bản cho các lệnh. –

+0

Thực ra tôi đã đọc điều này trước đây: http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.soafep.multiplatform.doc/info/ae/ae/ucws_rsharedlib_inst.html Gần cuối có một phần đặc biệt về "Sử dụng bộ nạp lớp riêng biệt cho thư viện được chia sẻ này" và trong phần này, thứ tự bạn đã đưa ra được đề cập. Mà tôi nghĩ rằng đó là một gợi ý rằng, đối với thư viện được chia sẻ bình thường, nó không sử dụng một trình nạp lớp riêng biệt cho các thư viện được chia sẻ. Ai đó có thể xác minh nếu hiểu biết của tôi là chính xác không? (Nếu không, sự khác biệt giữa trình nạp lớp bị cô lập và lib được chia sẻ thông thường là gì?) –

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