में स्प्रिंग बीन्स इंजेक्ट करें मैं @Interceptors(SpringBeanAutowiringInterceptor.class)
का उपयोग कर स्प्रिंग बीन्स को ईजेबी में इंजेक्ट करने की कोशिश कर रहा हूं लेकिन मैं इसे beanRefContext.xml
उदाहरणों के साथ काम नहीं कर सकता।ईजेबी 3
@Stateless
@Interceptors(SpringBeanAutowiringInterceptor.class)
public class AlertNotificationMethodServiceImpl implements
AlertNotificationMethodService {
@Autowired
private SomeBean bean;
}
इस प्रकार मैं एक beanRefContext.xml प्रदान की है::
यहाँ मेरी EJB है
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="...">
<!-- Have also tried with ClassPathXmlApplicationContext -->
<bean id="context"
class="org.springframework.web.context.support.XmlWebApplicationContext">
<property name="configLocations" value="/config/app-config.xml" />
</bean>
</beans>
लेकिन, यह सेम पुनः किए जाने की बजाय मौजूदा ApplicationContext प्राप्त करने लगता है। मैं निम्नलिखित अपवाद के साथ समाप्त होता हूं क्योंकि मेरे सेम में से एक ServletContextAware है।
java.lang.IllegalArgumentException: Cannot resolve ServletContextResource
without ServletContext
SpringBeanAutowiringInterceptor
का उपयोग करते समय ApplicationContext प्राप्त नहीं करना चाहिए के बजाय एक नया बना?
मैंने अपने web.xml को बदलने का भी प्रयास किया ताकि संदर्भ कॉन्फिगोकेशन बीनआरफ कॉन्टेक्स्ट.एक्सएमएल को इंगित कर सके, उम्मीद है कि यह मेरी स्प्रिंग कॉन्फ़िगरेशन लोड करेगा, लेकिन मैं उपरोक्त के समान अपवाद के साथ समाप्त होता हूं।
क्या किसी को यह ठीक से कैसे करना है? मैंने जो उदाहरण देखे हैं, वे उसी विधि का उपयोग करते हैं जो मैं उपयोग कर रहा हूं जिसका अर्थ है कि मुझे लगता है कि जब इंटरसेप्टर को बुलाया जाता है तो बीन्स को फिर से बनाया जा रहा है (या यह है कि यह कैसे काम करना चाहिए और मैंने गलत समझा है)।
पूरी प्रक्रिया को समझाते हुए एक उपयोगी लिंक: http://techo-ecco.com/blog/spring-plplication-context-hierarchy-and-contextsingletonbeanfactorylocator/ – omartin