के बाद विलय के दौरान त्रुटि मेरे पास एक ऐसा एप्लिकेशन है जो मूल रूप से एकाधिक webservices को कॉल करता है, उन webservices से प्राप्त डेटा संग्रहीत करता है और इसे उपयोगकर्ता को प्रस्तुत करता है। मैं एक async कार्य है कि सभी webservices फोन है और यह इस तरह दिखता है:एसिंक कार्य
List<Promise> t = new ArrayList<Promise>()
def TIMEOUT_TIME = 6
t[0] = task {
def responseFrom0 = webserviceRequestService.getResponse(0)
if(responseFrom0){
return responseFrom0
}
}
t[1] = task {
def responseFrom1 = webserviceRequestService.getResponse(1)
if(responseFrom1){
return responseFrom1
}
}
कार्रवाई GetResponse इस तरह दिखता है:
List<ResponseResult> result = new ArrayList<TravelQuote>()
try {
wsClient = prepareRequestMap()
wsResponse = externalWebservice.getQuotes(wsClient)
wsResponse.responseList.each {
ResponseResult responseResult = new ResponseResult()
//populate properties of ResponseResult
responseResult.save(failOnError:true, flush:true)
result.add(responseResult)
}
} catch(Exception e){
log.error e.message
e.printStackTrace()
}
return result
और अंत में, मैं से सभी प्रतिक्रियाओं को इकट्ठा इस तरह सभी webservices:
result.each {
if(it){
try{
it=it.merge()
}catch (Exception e){
log.error("Error occured while merging responses... : ${e.message}")
}
}
}
अब, यहां मुद्दा यह है मैं कोड के अंतिम ब्लॉक से इस अपवाद मिलता है
गैर-शून्य संपत्ति संदर्भ शून्य या क्षणिक मान का संदर्भ देता है: ResponseResult.dateCreated; नेस्टेड अपवाद org.hibernate.PropertyValueException है: नहीं-अशक्त संपत्ति एक अशक्त या क्षणिक मानों का संदर्भ: ResponseResult.dateCreated
DateCreated इस वर्ग के जो मैं अपने डोमेन कक्षाओं के सभी पर लागू किया है से आता है।
abstract class AbstractPersistentObject implements Serializable{
static final long serialVersionUID = 1L;
Date dateCreated
Date lastUpdated
}
इस मुद्दे के बारे अजीब बात यह केवल उत्पादन वातावरण पर होता है, कोई फर्क नहीं पड़ता कि मुझे क्या करना है, मैं किसी अन्य के वातावरण में इस को दोहराने नहीं कर सकते, है। और साथ ही, ऐसा होने पर, सर्वर तब भी उस विशेष समस्या को फेंक देता है जब तक कि सर्वर पुनरारंभ होने तक कोड चलाया जाता है। पुनरारंभ करने के बाद, यह कोड ठीक काम करता है।
मैं विचारों से बाहर हूं, किसी के पास कोई विचार है?
क्या आप जिस डोमेन कक्षाओं को सहेज रहे हैं, उससे डीटीओ को अलग करना बेहतर नहीं है? क्या होता है यदि आप एक डोमेन क्लास को सहेजते हैं जो Serializable लागू नहीं करता है? –
क्या आपने प्रत्येक कंक्रीट डोमेन क्लास में मैपिंग ब्लॉक में 'autoTimestamp true' जोड़कर autoTimestamp सुविधा को बल-सक्षम करने का प्रयास किया है? –
मैंने डेट करके सीधे दिनांकित करने की कोशिश की, प्रतिक्रियाResult.dateCreated = नई तिथि(), ऐसा करने के बाद, मुझे यह त्रुटि मिली कि यह शून्य संपत्ति 'आईडी' –