2011-08-25 25 views
15

Trong đơn đăng ký của tôi, tôi đang sử dụng Joda-Time 2.0 nhưng trong đường dẫn WebLogic có thư viện Joda-Time 1.2.Làm thế nào để đặt thứ tự các lọ trong WebLogic?

Làm cách nào để thay đổi thứ tự và yêu cầu WebLogic sử dụng thư viện của tôi? Bây giờ nó đang sử dụng thư viện riêng của nó, không phải của tôi. Tôi vừa thêm một phụ thuộc dự án Maven vào Joda-Time 2.0.

Trả lời

26

Có một số cách để thực hiện việc này.

  1. Thay đổi startWeblogic.cmd của bạn (sh) trong thư mục bin cho miền của bạn, tìm kiếm các thiết lập classpath và thêm Joda mới trước khi bất kỳ lọ WebLogic khác
  2. như đã nói ở trên, bạn có thể thay đổi WebLogic của bạn .xml nếu ứng dụng là một ứng dụng web và đã chọn thích bất kỳ lib nào xuất hiện bên trong chiến tranh.
  3. Nếu bạn đang sử dụng một ứng dụng doanh nghiệp, bạn có thể thiết lập các tùy chọn sau trong WebLogic-application.xml của bạn:

    <prefer-application-packages> 
        <package-name>org.apache.*</package-name> 
        <package-name>antlr.*</package-name> 
    </prefer-application-packages> 
    

Và đặt tên gói của bạn cho Joda trong đó.

Xin lưu ý rằng tùy chọn đầu tiên có thể dẫn đến hành vi lạ từ WebLogic.

Lưu ý vì một lý do nào đó tôi không thể lấy mã để làm việc với XML.

+0

thx cho giải pháp khác nhưng đầu tiên là thanh lịch hơn và nó hoạt động nhưng thx anyway – hudi

+1

lưu ý rằng nó không có gì để làm với sự thanh lịch. cả hai tùy chọn 2 và 3 có thể cần thiết tùy thuộc vào chi tiết cụ thể của dự án của bạn. JoseK làm việc cho các thùng chứa web, nhưng nó sẽ thất bại nếu bạn cần nó trong container ejb của bạn. Nhưng nếu nó phù hợp với bạn, đó là giải pháp bạn đang tìm kiếm –

+0

+1 trên trang này; tùy chọn 2 bao gồm câu trả lời khác và tùy chọn 3 là cách ưa thích của tôi để đi vì nó cho phép bạn chỉ định thư viện nào được tải ở cấp ứng dụng. Sử dụng các lớp ưa thích-web-inf là một cách tiếp cận tất cả hoặc không có gì và sẽ gây ra rất nhiều sự trùng lặp khi tải các libs nếu không sẽ được chia sẻ ở cấp độ máy chủ. – CashIsClay

11

Như lớp học của bạn có mặt trong cuộc chiến của mình, WEB-INF/lib,

bạn có thể thử sử dụng cài đặt weblogic.xml để buộc các WEB-INF/lib lớp để có được nạp trong ưu tiên cho rằng trong máy chủ/lib với

<container-descriptor>  
<prefer-web-inf-classes>true</prefer-web-inf-classes> 
</container-descriptor> 
+0

đẹp nó hoạt động thx rất nhiều – hudi

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