I have this piece of code which gives to SAXParseError i.e., it is not getting the content, but the same thing when i use in my test pg it works correctly. Here i am providing my original code piece, can any1 figure out what is the problem
This is the part where I fetch a xml and append a node to it but it seems that i am not able to get the file itself
String atemp=readFileAsString("../webapps/abc/include/xml/data.xml")
log.info("ok thats good")
String[] splitString=res.split(",")
log.info(atemp)
try
{
def root = new XmlSlurper().parseText(atemp)
}
catch(Exception e)
{
log.debug("parse errror: "+e)
}
root.appendNode {
row {
name(splitString[1])
host(splitString[2])
desc(splitString[3])
product(splitString[4])
type(splitString[5])
time(splitString[6])
by(splitString[7])
}
}
def outputBuilder = new StreamingMarkupBuilder()
String temp = outputBuilder.bind{ mkp.yield root }
File file = new File("../webapps/abc/include/xml/data.xml");
BufferedWriter output = new BufferedWriter(new FileWriter(file));
output.write(temp);
output.close();
log.info(temp)
my readFileAsString function
private String readFileAsString(String filePath) {
try
{
StringBuffer fileData = new StringBuffer();
BufferedReader reader = new BufferedReader(new FileReader(filePath));
log.info(reader==null);
char[] buf = new char[1024];
int numRead=0;
while((numRead=reader.read(buf)) != -1){
String readData = String.valueOf(buf, 0, numRead);
fileData.append(readData);
log.info(readData)
}
reader.close();
log.info("File Content\n"+fileData.toString());
return fileData.toString();
}
catch (Exception e)
{
log.info(e);
}
}
Output
INFO http-5050-Processor24 com.abc.helper.WriteXml - false
INFO http-5050-Processor24 com.abc.helper.WriteXml - File Content
INFO http-5050-Processor24 com.abc.helper.WriteXml - ok thats good
Note: I am able to open the file in my test program with the same path
Assuming this is in Groovy, I believe you can replace all of your code with:
But I repeat, doing this inside a web application is probably a bad idea as if two threads call this code at the same time, the file is going to be unpredictable (and get more unpredictable as it gets larger)
Also, you might want to change:
to
As suggested to you in a previous question of yours