Bir Java Web Projesi'nde, bir web sayfasından gelen değerleri kullanarak bir XML etiketi değerini güncellemek için bir Servlet kullanıyoruz ve daha sonra yürütmek için bu güncellenmiş etiket değerini XML ve devam, ancak eski değeri (güncelleme öncesi) ve devam ediyor.Servlet XML'den güncellenen değeri alınamıyor
public void setPeriodID(String bookingsBOPeriodID) throws InterruptedException {
try{
final String FilePath=UtilLib.getEnvVar("ConfigXMLFilePath");
String filepath = FilePath;
String bwperiodid=" and ";
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.parse(filepath);
// Get the staff element by tag name directly
Node Parameters = doc.getElementsByTagName("Parameters").item(0);
// loop the staff child node
NodeList list = Parameters.getChildNodes();
for (int i = 0; i < list.getLength(); i++) {
Node node = list.item(i);
//BookingsBO
if (bookingsBOPeriodID!=null && bookingsBOPeriodID.length()!=0 && "BookingsBOINPeriodId".equals(node.getNodeName()) && bookingsBOPeriodID.indexOf(bwperiodid)==-1 ){
System.out.println("***** Updating Bookings BO IN Period id ********");
System.out.println("inside updateEnvPeriodID::"+bookingsBOPeriodID);
node.setTextContent(bookingsBOPeriodID);
// node.setNodeValue(bookingsBOPeriodID);
}
}
// write the content into xml file
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new File(filepath));
transformer.transform(source, result);
System.out.println("******* Period Id details updated **************");
} catch (ParserConfigurationException pce) {
pce.printStackTrace();
} catch (TransformerException tfe) {
tfe.printStackTrace();
} catch (IOException ioe) {
ioe.printStackTrace();
} catch (SAXException sae) {
sae.printStackTrace();
}
System.out.println("in period id after update :"+ UtilLib.getParam("BookingsBOINPeriodId"));
}
Webinterface'den yeni bir değer "bookingsBOPeriodID" içinden geçirilir. Bu yöntemden hemen sonra, yeni değer XML'de yansıtmayan
Projenizi temizleyin ve sunucunuzu yeniden başlatın –
@Khan: Bunun da yardımcı olmadığını denedik. Akış, @ XML'i Güncelle gibidir, bir işlemi gerçekleştirmek için değerleri alır. Bir sunucuda manuel olarak çalıştırdığımız zaman gayet iyi çalışıyor ancak Web arayüzünden aynısını çalıştırmaya çalıştığımız zaman değil. –
Kodunuzu yükseltebilir misiniz? –