मैं कस्टम सीएक्सएफ इंटरसेप्टर में @Autowired का उपयोग करते समय एक छोटी सी समस्या में भाग लेता प्रतीत होता हूं। मेरा उपयोग मामला यह है कि मैं साबुन संदेशों को लॉग करना चाहता हूं और इन्हें एएमक्यूपी का उपयोग किसी अन्य सिस्टम में भेजना चाहता हूं। यह प्रक्रिया सामान्य सेवाओं आदि के लिए काम करती है लेकिन जो भी मैं करता हूं, आवश्यक गुण स्वचालित रूप से प्राप्त नहीं होते हैं और शून्य रहते हैं।कस्टम सीएक्सएफ इंटरसेप्टर में स्प्रिंग ऑटोवायर का उपयोग कैसे करें?
मैंने स्प्रिंग डी लॉग की जांच की और संदर्भ स्कैन और उठाया गया है, तो मुझे क्या याद आ रही है?
क्या यह सीएक्सएफ इंटरसेप्टर में भी संभव है?
@Component
public class LogInInterceptor extends AbstractSoapInterceptor {
private @Value("#{rabbitMQProperties['rabbitmq.binding.log.soap']}")
String binding;
@Autowired
AmqpTemplate amqpTemplate;
public LogInInterceptor() {
super(Phase.RECEIVE);
}
@Override
public void handleMessage(SoapMessage soapMessage) throws Fault {
logIt(soapMessage);
}
private void logIt(SoapMessage message) throws Fault {
// rest of the code omitted...!!!
amqpTemplate.convertAndSend(binding, buffer.toString());
}
}
करके आप का मतलब है कि आपके LogInInterceptor पाया जा रहा है और के लिए पात्र है:
यह मैं कैसे स्प्रिंग बूट 1.3.1 के साथ काम करने के लिए कस्टम इंटरसेप्टर और
@Autowired
मिला है वसंत कंटेनर से इंजेक्शन? क्या यह इंजेक्शन के साथ किसी भी अन्य समस्या की सूचना दी है (जैसे @Value पैरामीटर में विफल)? –क्या आप इस इंटरसेप्टर के लिए सीएक्सएफ के साथ कॉन्फ़िगरेशन साझा कर सकते हैं। इस मुद्दे का कारण यह हो सकता है कि इंटरसेप्टर को सीएक्सएफ द्वारा तत्काल किया जा सकता है और स्प्रिंग द्वारा एक अलग ऑटोवायर इंस्टेंस बनाया जा सकता है। –
मैंने उपरोक्त के रूप में इंटरसेप्टर को कार्यान्वित किया है और इसे @ org.apache.cxf.interceptor के माध्यम से अपने webservice में जोड़ा है। इंटरसेप्टर्स (इंटरसेप्टर = {"org.apache.cxf.interceptor.LoggingInInterceptor", "mypackagenames.ws.interceptor.LogInInterceptor "}) मैंने बिल्कुल कोई अतिरिक्त कॉन्फ़िगरेशन नहीं किया। – Marco