Я работаю над веб-программой, использующей Java. Я не уверен, как именно это сформулировать, но я ожидаю, что программа будет запущена из каталога c: / Resin / webapps / apps. Тем не менее, когда я ссылаюсь на файл в программе, например: «../files/randomfile.pdf», он не может найти этот файл. Это работает, когда я ссылаюсь на это так: "c: /Resin/webapps/files/randomfile.pdf". Как мне поменять "бегущую локацию"? (И какой технический термин для этого?)
try {
Document iTextDoc = new Document(PageSize.LETTER, 27, 27, 35, 18);
HttpServletResponse res = (HttpServletResponse) pageContext.getResponse();
res.setContentType("application/vnd.ms-word");
res.setHeader("Content-Disposition", "attachment; filename=" + fileName + ".rtf;");
RtfWriter2 rtfWriter = RtfWriter2.getInstance(iTextDoc, res.getOutputStream());
iTextDoc.open();
iTextDoc.add(new Paragraph ("Testing RTF Letterhead with Logo"));
// Use full classname to avoid ambiguity with java.awt.Image
com.lowagie.text.Image logoImg = com.lowagie.text.Image.getInstance("../files/someimage.jpg");
logoImg.setAlignment(Image.RIGHT | Image.TEXTWRAP);
iTextDoc.add(logoImg);
iTextDoc.add(new Paragraph ("Put other information about organization beneath logo"));
iTextDoc.close();
}
Я получаю следующую ошибку с полученным файлом: Adobe Reader не может открыть файл «someFile.pdf», так как он не поддерживает тип файла или поврежден (например, он был отправлен как вложение электронной почты) и не был правильно декодирован).
Однако, если я изменю команду getInstance на эту:
com.lowagie.text.Image logoImg = com.lowagie.text.Image.getInstance("webapps/files/someimage.jpg");
это работает. Поэтому я предполагаю, что рабочий каталог (спасибо за термин) должен быть где-то установлен. Я использую смолу - любая идея, где я должен установить это?
Спасибо!