2013-05-16 4 views
5

पर तैनात सभी अनुप्रयोगों के AspectJ LTW मैंने अपने पहलूजे पहलुओं को एक ही युद्ध (पहलुओंवार) फ़ाइल में बंडल किया है और इसे मौजूदा चल रहे अनुप्रयोगों के साथ एक एप्लिकेशन सर्वर पर तैनात किया है और टॉमकैट सर्वर पर एक जावाएन्ट के साथ एलटीडब्ल्यू बुनाई का उपयोग किया है ।एक जेवीएम

मैं पहलूवायर पर पहलू को अवरुद्ध करने वाले पहलू देख सकता हूं लेकिन उसी जेवीएम पर चल रहे अन्य अनुप्रयोगों पर नहीं।

वहाँ समझते हैं और अन्य सभी चल अनुप्रयोगों बुनाई (अधिमानतः व्यक्ति युद्ध फ़ाइलों को संशोधित करने के बिना) के लिए, शायद एप्लिकेशन सर्वर से कुछ कस्टम classloading परिवर्तन के माध्यम से मेरी AspectJ पहलू है करने के लिए एक रास्ता है ...

नोट: यह किसी भी वसंत से संबंधित एकीकरण के बिना पहलूजे का उपयोग कर रहा है।

कृपया सलाह दें।

उत्तर

2

विशिष्ट वर्ग लोडर को बुनाई के लोड समय का प्रतिबंध वसंत द्वारा प्रदान की जाने वाली सुविधा है। documentation के रूप में वर्णन करता है:

मूल्य जोड़ने है कि स्प्रिंग फ्रेमवर्क AspectJ LTW को बुनाई की प्रक्रिया पर बहुत महीन कुशल नियंत्रण को सक्षम करने में है लाता है। 'वेनिला' AspectJ LTW जावा (5+) एजेंट का उपयोग करके प्रभावित होता है, जिसे JVM प्रारंभ करते समय VM तर्क निर्दिष्ट करके स्विच किया जाता है। इस प्रकार यह एक जेवीएम-चौड़ा सेटिंग है, जो कुछ स्थितियों में ठीक हो सकता है, लेकिन अक्सर थोड़ा बहुत मोटा होता है। स्प्रिंग-सक्षम एलटीडब्ल्यू आपको प्रति-कक्षा लोडर आधार पर एलटीडब्लू पर स्विच करने में सक्षम बनाता है, जो स्पष्ट रूप से अधिक बढ़िया है और जो 'सिंगल-जेवीएम-बहु-अनुप्रयोग' वातावरण में अधिक समझ सकता है (जैसे कि एक ठेठ में पाया जाता है एप्लिकेशन सर्वर पर्यावरण)।

लंबे उद्धरण के लिए खेद है, लेकिन यह मूल रूप से आपके प्रश्न का उत्तर है। यदि आप JVM चौड़े पहलुओं को लागू करना चाहते हैं तो Spring load time weaving configuration के बजाय agent provided by AspectJ का उपयोग करें।

+0

क्षमा करें, मुझे यह उल्लेख करना भूल गया होगा कि मैं विकल्प के साथ AspectJ एजेंट का उपयोग कर रहा हूं- जावा: ई: \ workspace \ tomcat6 \ lib \ aspectjweaver-1.7.2.jar। पहलू पहलुओं के साथ (एनोटेशन के साथ नहीं)। वसंत विशिष्ट कुछ नहीं (उम्मीद है कि अनुप्रयोग वसंत प्रबंधित अनुप्रयोग हैं :))। – Sammy

+0

शायद आपके पहलुओं को सिस्टम क्लासपाथ पर रखना समझदारी होगी ताकि वे अन्य अनुप्रयोगों से पहले लोड हो जाएं। – kriegaex

संबंधित मुद्दे