0

我正在使用 Java + OpenOffice 开发 Web 应用程序来生成报告文档。

一个 tomcat 服务器和 war 文件安装在 Fedora 机器上。

下面的代码可以很好地在 Windows 操作系统上创建编写器文档,但在使用 war 文件从客户端调用时在 Fedora 机器上给出错误:

String oooExeFolder = "/usr/lib/openoffice.org3/program";              
XComponentContext xContext = BootstrapSocketConnector.bootstrap(oooExeFolder);

XMultiComponentFactory xMultiComponentFactory = xContext.getServiceManager();

XComponentLoader xcomponentloader = (XComponentLoader) UnoRuntime.queryInterface(XComponentLoader.class, xMultiComponentFactory.createInstanceWithContext("com.sun.star.frame.Desktop", xContext));

XComponent xcomp = xcomponentloader.loadComponentFromURL(filep[i], "_blank", 0, new PropertyValue[0]);

这是错误:

CE> /usr/lib/openoffice.org3/program/soffice.bin X11 error: Can't open display: 
CE>    Set DISPLAY environment variable, use -display option
CE>    or check permissions of your X-Server
CE>    (See "man X" resp. "man xhost" for details)

任何人都可以帮助确定此问题的可能原因吗?

4

2 回答 2

1

您需要以soffice“无头”模式启动。我建议您查看JODReportsDocmosis,因为它们会在此类设置问题上为您节省大量时间。请注意,我为创建 Docmosis 的公司工作。

于 2012-10-10T06:25:26.913 回答
0
After Setting display to "1.0" with following code manually problem has been resolved and  i am able to access Open Office from web application to generate report

oooExeFolder = "/usr/lib/openoffice.org3/program/";
List<String> oooOptions = OOoServer.getDefaultOOoOptions();
oooOptions.add("-display");
oooOptions.add(":1.0");

OOoServer server = new OOoServer(oooExeFolder, oooOptions);
XComponentContext xContext = BootstrapSocketConnector.bootstrap(oooExeFolder);
于 2012-10-10T11:43:08.697 回答