2011-08-06 19 views
9

I am using some non-standard extensions एक्सेलिपलिंक के जेएक्सबी के कार्यान्वयन से, और कार्यान्वयन को सक्षम करने के लिए, मुझे इसे jaxb.properties का उपयोग करके कॉन्फ़िगर करना होगा। अच्छा काम करता है।क्या मैं jaxb.properties को कोड के साथ बदल सकता हूं?

हालांकि, निर्माण त्रुटि के कारण, गुण फ़ाइल को उचित स्थान पर शामिल नहीं किया गया था, जिसके परिणामस्वरूप डिफ़ॉल्ट जेएक्सबी का उपयोग किया जा रहा था, जिसके बिना किसी भी त्रुटि के एक्सएमएल फ़ाइल को पार्स करना जारी रखा गया था, गैर-मानक एक्सटेंशन को अनदेखा कर रहा था, मुझे एक गैर-कामकाजी बीन के साथ छोड़कर।

इस और अधिक मजबूत बनाने के लिए, मैं गुण फ़ाइल बंद छुटकारा मिलता है और कोड में संदर्भ विन्यास निर्दिष्ट करना चाहते हैं। मेरे पास एनोटिप्सेलिंक पर पहले से ही संकलन-समय पर निर्भरता है क्योंकि उनकी टिप्पणियों के कारण, और मुझे इस भाग को समय पर तैनात करने की आवश्यकता नहीं है (वास्तव में, क्या गलत हो सकता है, मैं इसे कॉन्फ़िगर करने योग्य नहीं चाहता)। निर्माण में देर jaxb.properties की उपस्थिति के लिए परीक्षण:

+0

एक विकल्प पर विचार करें। –

उत्तर

12

आप एक jaxb.properties फ़ाइल के बिना एक EclipseLink JAXB (MOXY) JAXBContext पाने के लिए निम्न कर सकता है:

import java.io.File; 

import javax.xml.bind.JAXBContext; 
import javax.xml.bind.Marshaller; 
import javax.xml.bind.Unmarshaller; 

import org.eclipse.persistence.jaxb.JAXBContextFactory; 

public class Demo { 

    public static void main(String[] args) throws Exception { 
     //JAXBContext jc = JAXBContext.newInstance(Animals.class); 
     JAXBContext jc = JAXBContextFactory.createContext(new Class[] {Animals.class}, null); 

     Unmarshaller unmarshaller = jc.createUnmarshaller(); 
     File xml = new File("src/forum6871469/input.xml"); 
     Animals animals = (Animals) unmarshaller.unmarshal(xml); 

     Marshaller marshaller = jc.createMarshaller(); 
     marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); 
     marshaller.marshal(animals, System.out); 
    } 

} 
+0

मैं उपरोक्त कोड में MarshallerProperties.JSON_INCLUDE_ROOT संपत्ति कैसे सेट कर सकता हूं? – Vivek

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