0

Java + OpenOffice を使用してレポート ドキュメントを生成する Web アプリケーションを開発しています。

Tomcat サーバーと war ファイルが Fedora マシンにインストールされています。

以下のコードは、Windows OS でライター ドキュメントを作成するのに問題なく動作しますが、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「ヘッドレス」モードで起動する必要があります。JODReportsまたはDocmosisを参照することをお勧めします。このタイプのセットアップの問題で多くの時間を節約できるからです。私は 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 に答える