कैसे सेट करें मैं जैक्स-डब्ल्यूएस में @UsesJAXBContext एनोटेशन के बारे में एक प्रश्न पूछना चाहता हूं। मैं इसे क्लाइंट साइड पर काम करने की कोशिश करता हूं लेकिन मुझे शायद कुछ याद आ रहा है।कस्टम JAXBContext
मैं ऑपरेशन के साथ वेब सेवा मिल गया है:
@WebMethod(operationName = "putToQueue")
public boolean put(@WebParam(name = "queueName") String queueName, @WebParam(name = "element") Object element) {
return queues.get(queueName).offer(element);
}
ग्राहक के पक्ष मैं QueueService और क़तार (बंदरगाह) ... और अन्य सामग्री उत्पन्न पर ... [respones अनुरोध यहाँ मेरी मामला है। इस मामले में अप्रासंगिक।] मैं उपयोगकर्ता को उस वस्तु को परिभाषित करना चाहता हूं जिसे वह कतार में डाल सकता है। हालांकि ऑपरेशन का आह्वान करने के लिए डाल दें (...) मुझे JAXBContext में बाइंड ऑब्जेक्ट (जिसे मैं भेजने का प्रयास करता हूं) की आवश्यकता है। मैं इसे उत्पन्न कर सकता हूं @XmlSeeAlso जेनरेट किए गए कतार स्टब के शीर्ष पर [मैंने यह कोशिश की और यह काम करता है]। फिर भी मुझे अधिक सामान्य समाधान की आवश्यकता है जो मुझे रनटाइम पर ऑब्जेक्ट को बाध्य करने में मदद करे। मैंने सोचा कि मैं @QueueMessage एनोटेशन और क्लाइंटजेक्सबीएनएन्टेक्स्ट फैक्टरी बना सकता हूं और इसे बनाते समय संदर्भ में चिह्नित वर्ग जोड़ सकता हूं।
public class ClientJAXBContextFactory implements JAXBContextFactory {
@Override
public JAXBRIContext createJAXBContext(SEIModel seim, List<Class> classes, List<TypeReference> references) throws JAXBException {
Reflections reflections = new Reflections("");
Set<Class<?>> annotated = reflections.getTypesAnnotatedWith(QueueMessage.class);
classes.addAll(annotated);
return JAXBContextFactory.DEFAULT.createJAXBContext(seim, classes, references);
}
}
अगला मैं उत्पन्न कतार के शीर्ष पर उपयोग की कोशिश की @UsesJAXBContext।
@WebService(name = "Queue")
@UsesJAXBContext(ClientJAXBContextFactory.class)
public interface Queue {
...
}
लेकिन createJAXBContext (...) लागू नहीं है और jax-ws बस उसकी JAXBContextImpl पैदा करते हैं।
मैंने पढ़ लिया है:
http://weblogs.java.net/blog/jitu/archive/2008/08/control_of_jaxb.html
http://www.techques.com/question/1-5627173/Specify-JAXB-Packages-in-SLSB-and-JAX-WS
और Stackoverflow पर कुछ सवाल। मैं सलाह के लिए आभारी होंगे। क्या मेरे प्रश्न में प्रस्तुत विचार को लागू करना संभव है?
इसके अलावा मैं इसे सर्वर की तरफ जोड़ सकता हूं ... @UsesJAXBContext काम करता है। लेकिन यह मेरे लिए क्लाइंट पक्ष पर काम करने के लिए महत्वपूर्ण है।