2012-06-25 9 views
8

मुझे XML से जेएक्स बीन पॉप्युलेट करने की आवश्यकता है, हालांकि कोई सेटटर विधि नहीं है। मैं नीचेXMLGregorianCalendar को पॉप्युलेट करने के लिए कैसे करें()

Failed to invoke public javax.xml.datatype.XMLGregorianCalendar() with no args 

निम्न संदेश मिलता है मैं निम्न विधियों में लिखा एक तारीख लेने के लिए और यह XMLGregorianCalendar को बदलने, और फिर मेरा आवरण कक्षा में एक सेटर कॉल करने के लिए। हालांकि मुझे अभी भी अपवाद मिलता है। क्या इस डेटा प्रकार को संभालने का एक मानक तरीका है जिसे मैं देख रहा हूं? हो सकता है कि मेरा रैपर क्लास इसे कॉल नहीं कर रहा है, लेकिन नेटबीन मुझे किसी कारण से डीबगर संलग्न करने की अनुमति नहीं देगा।

public XMLGregorianCalendar asXMLGregorianCalendar(java.util.Date date) throws DatatypeConfigurationException { 
    DatatypeFactory datatypeFactory = DatatypeFactory.newInstance(); 
    if (date == null) { 
     return null; 
    } else { 
     GregorianCalendar gc = new GregorianCalendar(); 
     gc.setTimeInMillis(date.getTime()); 
     return datatypeFactory.newXMLGregorianCalendar(gc); 
    } 
} 

बीन में सेटर मैं Joda समय का उपयोग कर सुझाव है कि नीचे

public void setDeliveryDate(XMLGregorianCalendar value) { 
    this.deliveryDate = value; 
} 
+0

आप XML से पॉप्युलेट करने के लिए के रूप में सवाल कहा कोशिश कर रहे हैं, या आप अपने नमूना कोड से पता चलता है के रूप में एक तिथि वस्तु से यह पॉप्युलेट करने के लिए कोशिश कर रहे हैं? –

उत्तर

8

आपका नमूना कोड आप एक दिनांक वस्तु से पॉप्युलेट की कोशिश करते हुए सवाल ही कहते हैं आप XML से पॉप्युलेट करने के लिए कोशिश कर रहे हैं पता चलता है। तो जब तक मैं नहीं समझ पाते, एक्सएमएल से पॉप्युलेट करने के लिए बस का उपयोग करें:

XmlGregorianCalendar cal = DatatypeFactory.newInstance().newXMLGregorianCalendar(yourXmlDateTimeString); 
0

है - जावा दिनांक एपीआई डेवलपर्स के एक बहुत परेशान करता। यदि आप मूल पुस्तकालयों के साथ रहना चाहते हैं, तो डेटाटाइप फैक्टरी का उपयोग करने का प्रयास करें।

public static XMLGregorianCalendar asXMLGregorianCalendar(Date date) { 
    java.util.GregorianCalendar calDate = new java.util.GregorianCalendar();   
    calDate.setTime(date); 
    javax.xml.datatype.XMLGregorianCalendar calendar = null; 
     try { 
      javax.xml.datatype.DatatypeFactory factory = javax.xml.datatype.DatatypeFactory.newInstance(); 
      calendar = factory.newXMLGregorianCalendar(
      calDate.get(java.util.GregorianCalendar.YEAR), 
      calDate.get(java.util.GregorianCalendar.MONTH) + 1, 
      calDate.get(java.util.GregorianCalendar.DAY_OF_MONTH), 
      calDate.get(java.util.GregorianCalendar.HOUR_OF_DAY), 
      calDate.get(java.util.GregorianCalendar.MINUTE), 
      calDate.get(java.util.GregorianCalendar.SECOND), 
      calDate.get(java.util.GregorianCalendar.MILLISECOND), 0); 
     } catch (DatatypeConfigurationException dce) { 
      //handle or throw 
     } 
    return calendar; 
} 
संबंधित मुद्दे

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