Я пытался конвертировать простые XHTML-файлы в PDF и использовал для этого Flying Saucer и iText. В Java это работало без проблем, однако, когда я попытался создать агент Lotus Notes с тем же кодом, я получил исключение, с которым не знаю, как поступить.
Код:
import lotus.domino.*;
import java.io.*;
import com.lowagie.text.DocumentException;
import org.xhtmlrenderer.pdf.ITextRenderer;
import org.xhtmlrenderer.util.XRLog;
import java.util.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
String received = agentContext.getDocumentContext().
getItemValueString("Query_String");
String[] split;
split = received.split("&");
String url = split[1];
split = url.split("/");
String outputFile = split[split.length-1];
String direc = session.getEnvironmentString("Directory", true);
outputFile = direc + "\\" + outputFile + ".pdf";
OutputStream os = new FileOutputStream(outputFile);
ITextRenderer renderer = new ITextRenderer();
renderer.setDocument(url);
renderer.layout();
renderer.createPDF(os);
os.close();
System.exit(0);
} catch(Exception e) {
e.printStackTrace();
}
}
}
Это дает следующее:
05.09.2011 13:33:29 HTTP JVM: не удалось инициализировать конфигурацию библиотеки Flying Saucer. Сообщение: не удается найти ресурс для пакета java.util.PropertyResourceBundle, ключ access_properties_not_allowed
05.09.2011 13:33:29 HTTP JVM: java.util.MissingResourceException: не удается найти ресурс для пакета java.util.PropertyResourceBundle, ключ access_properties_not_allowed
05.09.2011 13:33:29 HTTP JVM: в java.util.MissingResourceException.(MissingResourceException.java:50)
05.09.2011 13:33:29 HTTP JVM: в java.util.ResourceBundle.getObject(ResourceBundle.java:400)
05.09.2011 13:33:29 HTTP JVM: в java.util.ResourceBundle.getString(ResourceBundle.java:421)
05.09.2011 13:33:29 HTTP JVM: в lotus.notes.JavaString.getString (неизвестный источник)
05.09.2011 13:33:29 HTTP JVM: в lotus.notes.AgentSecurityManager.checkPropertiesAccess (неизвестный источник)
05.09.2011 13:33:30 HTTP JVM: в java.lang.System.getProperties(System.java:323)
05.09.2011 13:33:30 HTTP JVM: в org.xhtmlrenderer.util.Configuration.loadSystemProperties(Configuration.java:419)
05.09.2011 13:33:30 HTTP JVM: в org.xhtmlrenderer.util.Configuration.(Configuration.java:147)
05.09.2011 13:33:30 HTTP JVM: в org.xhtmlrenderer.util.Configuration.instance(Configuration.java:742)
05.09.2011 13:33:31 HTTP JVM: в org.xhtmlrenderer.util.Configuration.valueFor(Configuration.java:463)
05.09.2011 13:33:31 HTTP JVM: в org.xhtmlrenderer.util.Configuration.isTrue(Configuration.java:709)
05.09.2011 13:33:31 HTTP JVM: в org.xhtmlrenderer.util.XRLog.init(XRLog.java:250)
05.09.2011 13:33:31 HTTP JVM: в org.xhtmlrenderer.util.XRLog.log(XRLog.java:203)
05.09.2011 13:33:31 HTTP JVM: в org.xhtmlrenderer.util.XRLog.render(XRLog.java:194)
05.09.2011 13:33:31 HTTP JVM: в org.xhtmlrenderer.util.XRLog.render(XRLog.java:190)
05.09.2011 13:33:31 HTTP JVM: в org.xhtmlrenderer.layout.SharedContext.(SharedContext.java:107)
05.09.2011 13:33:31 HTTP JVM: в org.xhtmlrenderer.pdf.ITextRenderer.(ITextRenderer.java:111)
05.09.2011 13:33:31 HTTP JVM: в org.xhtmlrenderer.pdf.ITextRenderer.(ITextRenderer.java:102)
05.09.2011 13:33:31 HTTP JVM: в JavaAgent.NotesMain(неизвестный источник)
05.09.2011 13:33:31 HTTP JVM: в lotus.domino.AgentBase.runNotes (неизвестный источник)
05.09.2011 13:33:31 HTTP JVM: в lotus.domino.NotesThread.run (неизвестный источник)
Оскорбительная линия
ITextRenderer renderer = new ITextRenderer();
Поиск в Google access_properties_not_allowed буквально ничего не дает.