2012-03-12 29 views
5

Şimdi EAR/lib'in altındaki kavanozları yükleyebilirim. Ama diğer uygulamaların kullanılması için kavanozları ortak bir yola koymak istiyorum. jboss-deployment-structure.xml dosyasının etiketi bunu yapabilir. Ama işe yaramıyor. ClassNotFound istisnasını aldım. Neden bilmiyorum?JBoss 7'deki dış kavanozları nasıl kullanabilirim?

cevap

11

Farklı uygulamalarda global kütüphaneleri kullanmanın bir yolu, modül olarak kullanılabilir hale getirilerek ulaşılabilir. Bunun için, modülleri bir sunucu sağlayıcısı olarak sağladığınız kitaplığa göre genişletin.

Örnek: modülleri isim ve main alt dizine (örn modules/commons/test/main) ile bir klasör oluşturun mevcut test.jar tüm uygulamaları yapmak.

Kitaplığınızı ve module.xml adını içeren bir modül açıklama dosyasını buraya yerleştirin. Örnek içeriği:

<module xmlns="urn:jboss:module:1.0" name="commons.test"> 
    <resources> 
     <resource-root path="test.jar"/> 
    </resources> 
</module> 

Şimdi kütüphane tüm uygulamalar için kullanılabilir. Modüle erişmek için, uygulamanız manifestodaki bağımlılığı tanımlamalıdır.

Uygulamalar MANIFEST.MF:


Bu


Dependencies: commons.test 
da inşa süresi boyunca maven tarafından yapılabilir. Check https://docs.jboss.org/author/display/AS7/Class+Loading+in+AS7 Ayrıntılar için

Lütfen sunucunun kendisini değiştirdiğinizi unutmayın. Modülünüzü kullanan tüm uygulamalar buna bağlı. Bu modülü içermeyen bir sunucuya commons.test modülüne bağımlılığı olan bir uygulama dağıtılmayacaktır.

+0

Bu, sunucu (global) modüllere dokunmadan aynı şeyi yapmak mümkün mü? Yani, EAR içinde modüller yaratmak? – Sriram

+0

Her kütüphaneyi belirtmek yerine bir joker kartı var mı? – Inv3r53