Problem with starting OpenOffice processes via OfficeManager

166 views
Skip to first unread message

Karol Dowbecki

unread,
Sep 1, 2010, 3:59:55 AM9/1/10
to JODConverter
I've got a Servlet that creates connection in it's init() method just
like in docs:

officeManager = new DefaultOfficeManagerConfiguration()
.setOfficeHome(configuration.getString("office.home"))
.setConnectionProtocol(OfficeConnectionProtocol.PIPE)
.setPipeNames(configuration.getString("office.pipe") + "1",
configuration.getString("office.pipe") + "2")
.setTaskExecutionTimeout(configuration.getLong("office.taskExecutionTimeout"))
.buildOfficeManager();
officeManager.start();


It runs on Suse Linux Enterprise 11, java 1.5.0 (system requirement),
and my java $CLASSPATH contains library required by named pipes.
However the first time I execute my Servlet it fails with exception
(full stack trace at the end of my message):

org.artofsolving.jodconverter.office.OfficeException: could not
establish connection


After examining system processes I see that only one soffice.bin
instance was created:

root 8922 74.1 0.9 103040 29096 pts/0 Rl 09:30 0:20 /
usr/lib/ooo3/program/soffice.bin -accept=pipe,name=ooopipe1;urp; -
env:UserInstallation=file:///my/path/tomcat/
temp/.jodconverter_pipe_name-ooopipe1 -headless -nocrashreport -
nodefault -nofirststartwizard -nolockcheck -nologo -norestore


If I kill that process manually and access my Servlet second time
everything works fine, the document is created and there are two
soffice.bin instances, like always.

root 9022 21.7 1.2 134884 36828 pts/0 Sl 09:33 0:00 /
usr/lib/ooo3/program/soffice.bin -accept=pipe,name=ooopipe1;urp; -
env:UserInstallation=file:///my/path/tomcat/
temp/.jodconverter_pipe_name-ooopipe1 -headless -nocrashreport -
nodefault -nofirststartwizard -nolockcheck -nologo -norestore
root 9041 36.1 1.2 134884 36812 pts/0 Sl 09:33 0:00 /
usr/lib/ooo3/program/soffice.bin -accept=pipe,name=ooopipe2;urp; -
env:UserInstallation=file:///my/path/tomcat/
temp/.jodconverter_pipe_name-ooopipe2 -headless -nocrashreport -
nodefault -nofirststartwizard -nolockcheck -nologo -norestore


What's going on here? Full stack trace below:

2010-09-01 09:31:03,500 [http-8080-Processor24] ERROR
my.package.servlets.OpenOfficeServlet - failed to start and connect
org.artofsolving.jodconverter.office.OfficeException: failed to start
and connect
at
org.artofsolving.jodconverter.office.ManagedOfficeProcess.startAndWait(ManagedOfficeProcess.java:
61)
at
org.artofsolving.jodconverter.office.PooledOfficeManager.start(PooledOfficeManager.java:
102)
at
org.artofsolving.jodconverter.office.ProcessPoolOfficeManager.start(ProcessPoolOfficeManager.java:
59)
at my.package.servlets.OpenOfficeServlet.init(OpenOfficeServlet.java:
64)
at
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:
1139)
at
org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:
791)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:
127)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:
174)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:
127)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:
117)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:
108)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:
151)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:
870)
at org.apache.coyote.http11.Http11BaseProtocol
$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:
665)
at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:
528)
at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:
81)
at org.apache.tomcat.util.threads.ThreadPool
$ControlRunnable.run(ThreadPool.java:685)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.util.concurrent.ExecutionException:
org.artofsolving.jodconverter.office.OfficeException: could not
establish connection
at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:205)
at java.util.concurrent.FutureTask.get(FutureTask.java:80)
at
org.artofsolving.jodconverter.office.ManagedOfficeProcess.startAndWait(ManagedOfficeProcess.java:
59)
... 17 more
Caused by: org.artofsolving.jodconverter.office.OfficeException: could
not establish connection
at
org.artofsolving.jodconverter.office.ManagedOfficeProcess.doStartProcessAndConnect(ManagedOfficeProcess.java:
123)
at org.artofsolving.jodconverter.office.ManagedOfficeProcess.access
$000(ManagedOfficeProcess.java:31)
at org.artofsolving.jodconverter.office.ManagedOfficeProcess
$1.run(ManagedOfficeProcess.java:55)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:
417)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269)
at java.util.concurrent.FutureTask.run(FutureTask.java:123)
at java.util.concurrent.ThreadPoolExecutor
$Worker.runTask(ThreadPoolExecutor.java:650)
at java.util.concurrent.ThreadPoolExecutor
$Worker.run(ThreadPoolExecutor.java:675)
... 1 more
Caused by: org.artofsolving.jodconverter.office.RetryTimeoutException:
java.net.ConnectException: connection failed: 'pipe,name=ooopipe1';
null
at
org.artofsolving.jodconverter.office.Retryable.execute(Retryable.java:
48)
at
org.artofsolving.jodconverter.office.Retryable.execute(Retryable.java:
31)
at
org.artofsolving.jodconverter.office.ManagedOfficeProcess.doStartProcessAndConnect(ManagedOfficeProcess.java:
113)
... 8 more
Caused by: java.net.ConnectException: connection failed:
'pipe,name=dsreport1'; null
at
org.artofsolving.jodconverter.office.OfficeConnection.connect(OfficeConnection.java:
101)
at org.artofsolving.jodconverter.office.ManagedOfficeProcess
$6.attempt(ManagedOfficeProcess.java:116)
at
org.artofsolving.jodconverter.office.Retryable.execute(Retryable.java:
41)
... 10 more
2010-09-01 09:31:03,515 [http-8080-Processor24] ERROR
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/].
[OpenOfficeServlet] - Allocate exception for servlet OpenOfficeServlet
java.net.ConnectException: connection failed: 'pipe,name=ooopipe1';
null
at
org.artofsolving.jodconverter.office.OfficeConnection.connect(OfficeConnection.java:
101)
at org.artofsolving.jodconverter.office.ManagedOfficeProcess
$6.attempt(ManagedOfficeProcess.java:116)
at
org.artofsolving.jodconverter.office.Retryable.execute(Retryable.java:
41)
at
org.artofsolving.jodconverter.office.Retryable.execute(Retryable.java:
31)
at
org.artofsolving.jodconverter.office.ManagedOfficeProcess.doStartProcessAndConnect(ManagedOfficeProcess.java:
113)
at org.artofsolving.jodconverter.office.ManagedOfficeProcess.access
$000(ManagedOfficeProcess.java:31)
at org.artofsolving.jodconverter.office.ManagedOfficeProcess
$1.run(ManagedOfficeProcess.java:55)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:
417)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269)
at java.util.concurrent.FutureTask.run(FutureTask.java:123)
at java.util.concurrent.ThreadPoolExecutor
$Worker.runTask(ThreadPoolExecutor.java:650)
at java.util.concurrent.ThreadPoolExecutor
$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:595)




Reply all
Reply to author
Forward
0 new messages