Steps I am performing ...
- I am creating an image from html(xhtml)
- Displaying image on JSF page
- Deleting (generated) image and html(xhtml) -> Here lies the problem
Code for step1:
private void generateImageFromHtml(String imageName) {
try {
String cardPath = Constants.MEMBERSHIP_TEMPLATE_CARD_DIR;
// This is path to html and image
File file = new File(cardPath + imageName + ".xhtml");
int width = 600;
int height = 380;
Java2DRenderer renderer = new Java2DRenderer(file, width, height);
BufferedImage img = renderer.getImage();
FSImageWriter imageWriter = new FSImageWriter();
imageWriter.write(img, (cardPath + imageName + ".png"));
img.flush();
} catch (IOException exception) {}
}
Code for step2:
<img src="#{facesContext.externalContext.requestContextPath}/assets/images/cards/#{myBean.cardName}.png" />
Code for step3:
public void deleteMembershipCard() {
// Here are above code to popupate html and image paths
File card = new File(imagePath);
File xhtml = new File(xhtmlPath);
try {
card.delete(); // Not DONE Successfully
xhtml.delete(); // DONE Successfully
} catch(SecurityException se) {}
}
Problem: I am unable to delete image but html file is deleted successfully. When I try to delete image manually, it give me error message saying "Cannot delete it, it is open in Java(TM)".
Don't know where image is opened in Java.