मैं एक्सएमएल को ऑब्जेक्ट में बदलने के लिए xstream 1.4.2 का उपयोग करने की कोशिश कर रहा हूं। यह मेरे लिए पूरी तरह से ठीक काम करता है जब तक कि मैं ऑब्जेक्ट की क्लास फ़ाइल को एक अलग पैकेज में नहीं डालता, जहां मुख्य कोड चलता है। तब मुझे एक कैनोट रीसोल्व क्लास अपवाद मिलता है। मैंने setClassLoader विधि का उपयोग करके दूसरों द्वारा अनुशंसित की कोशिश की है लेकिन इससे मदद नहीं मिलती है।xstream CannotResolveClassException
Exception in thread "main" com.thoughtworks.xstream.mapper.CannotResolveClassException: result
at com.thoughtworks.xstream.mapper.DefaultMapper.realClass(DefaultMapper.java:56)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.DynamicProxyMapper.realClass(DynamicProxyMapper.java:55)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.PackageAliasingMapper.realClass(PackageAliasingMapper.java:88)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.ClassAliasingMapper.realClass(ClassAliasingMapper.java:79)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.ArrayMapper.realClass(ArrayMapper.java:74)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.CachingMapper.realClass(CachingMapper.java:45)
at com.thoughtworks.xstream.core.util.HierarchicalStreams.readClassType(HierarchicalStreams.java:29)
at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:133)
at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:32)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1052)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1036)
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:912)
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:903)
at main.readClass(main.java:48)
at main.main(main.java:28)
उत्तर: Xstream उम्मीद एक्सएमएल संरचना पैकेज जिसमें यह (वस्तु) से निकलती है के सापेक्ष किया जाना है। इसलिए xstream.alias का उपयोग xml संरचना को उपनाम करने के लिए किया जाना चाहिए।
xstream.alias("something", Something.class);
अन्यथा Xstream "समथिंग" उम्मीद डिफ़ॉल्ट पैकेज के बजाय पैकेज यह का एक सदस्य है में होना होगा।
पैकेज? पैकेज से आपका क्या मतलब है? –
क्या आप –
पॉप्युलेट करने के लिए उपयोग कर रहे एक्सएमएल और जावा क्लास को पोस्ट कर सकते हैं पूरी तरह से योग्य नाम अच्छी तरह से 'xstream.alias (...)' काम करता है, लेकिन यह एनोटेशन के साथ कैसे काम करता है? – lvr123