2013-05-16 39 views
5

için dağıtılan tüm uygulamaların AspectJ LTW'si AspectJ yönlerimi tek bir War (dotsWar.war) dosyasına ekledim ve varolan çalışan uygulamalara sahip bir uygulama sunucusuna dağıttım ve tomcat sunucusunda bir javaagent ile LTW dokumasını kullandım .Tek bir JVM

AspectWar.war üzerindeki çağrıları engelleyen ancak aynı jvm üzerinde çalışan diğer uygulamalarda olmayan çağrıları görebiliyorum.

muhtemelen uygulama sunucusuna bazı özel classloading değişiklikleri ile, tanımak ve (tercihen bireysel savaş dosyalarını değiştirmek zorunda kalmadan) diğer tüm çalışan uygulamaları örmeye benim AspectJ yönü için bir yolu var mı ...

Not: Bu, herhangi bir Yay ile ilgili entegrasyon olmaksızın baştanbaşa J'yi kullanmaktadır.

Lütfen tavsiye edin.

cevap

2

Yükleme süresi dokumalarının belirli sınıf yükleyicilere kısıtlanması, yay tarafından sağlanan bir özelliktir. documentation açıklanır gibi:

AspectJ'yi LTW dokuma süreci üzerinde çok daha ince taneli kontrolü sağlamada olduğu için Bahar Çerçeve getirdiği değer ekleyin. 'Vanilla' AspectJ LTW, bir JVM başlatılırken bir VM argümanı belirtilerek çalıştırılan bir Java (5+) aracı kullanılarak gerçekleştirilir. Bu nedenle, bazı durumlarda iyi olabilen JVM çapında bir ayardır, ancak genellikle biraz fazla kabadır. Yaylı LTW LTW'yi ClassLoader bazında açmanıza olanak tanır, ki bu da açıkça daha hassastır ve 'tek-JVM-çok-uygulama' ortamında daha mantıklı olabilir (örneğin, tipik olarak bulunur). uygulama sunucusu ortamı.

Uzun alıntı için özür dilerim, ancak temelde sorunuzun yanıtıdır. JVM genişliğini uygulamak istediğinizde Spring load time weaving configuration yerine agent provided by AspectJ kullanın.

+0

Üzgünüz, AspectJ aracısını -javaagent: e: \ workspace \ tomcat6 \ lib \ aspectjweaver-1.7.2.jar seçeneğiyle kullandığımı söylemeyi unutmuş olmalıyım. Aspectj yönleriyle (ek açıklamalarla değil). Spora özel bir şey yok (uygulamaların bahar yönetimi uygulamaları olmasını bekliyoruz :)). – Sammy

+0

Belki de diğer uygulamalardan önce yüklendikleri için sistem sınıf yolunda kendi yönlerinizi koymak mantıklı olurdu. – kriegaex