OOoBean blockt Writer beim schließen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

CDSchorsch
*
Beiträge: 13
Registriert: Sa, 19.05.2012 14:45

OOoBean blockt Writer beim schließen

Beitrag von CDSchorsch »

Ich hab eine Javaanwendung die intern das OOoBean verwendet. Bei Start der Anwendung versucht sie die office.exe zu starten.

Code: Alles auswählen

String path = System.getenv("UNO_PATH");
path = path.replace('\\', '/');
String commandLine = "\"" + path + "/soffice\" -nodefault -norestore -nocrashreport -nolockcheck -nologo -accept=" + interProcCommunicationString + ";urp;StarOffice.ServiceManager";
Runtime.getRuntime().exec(commandLine);
Es ist egal ob nun die office.exe schon läuft oder nicht. Der Accept-Parameter wird anscheinend immer gesetzt.

In diesem Zustand kann ich ganz normal den Writer parallel zur Javaanwendung öffnen und auch wieder schließen.
Im nächsten Schritt öffnet die Javaanwendung intern den Writer und erzeugt ein leeres Dokument und zeigt dieses an. Dabei stellt das OOoBean ein Verbindung zum Office her.

Code: Alles auswählen

oBean.startOOoConnection("uno:" + interProcCommunicationString + ";urp;StarOffice.ServiceManager");
Auch in diesem Zustand kann ich ganz normal den Writer parallel zur Javaanwendung öffnen und auch wieder schließen.
Wenn ich jetzt aber im Javaprogramm den Programmteil beende, der das leere Officedokument geöffnet habt, kann ich zwar wieder parallel den Writer öffnen aber nie wieder schließen.
Es spielt auch keine Rolle, wenn ich beim Schließen stopOOoConnection oder terminate Desktop aufrufe. Ich kann den parallel geöffneten Writer nicht schließen.

Code: Alles auswählen

this.oBean.getOOoDesktop().terminate();
this.oBean.stopOOoConnection();
Soweit ich das ganze OpenOffice verstanden hab. Muß das was mit dem XTerminateListener und mit TerminateVetoException zu tun haben.
Nur hab ich noch ned ganz rausbekommen, wie das funktionieren soll. Vor allem da es ja funktioniert, wenn das OOoBean noch nix gemacht hat und wenn es auch das leere Office Dokument anzeigt.
Ich hoffe das hier jemand eine Antwort hat.

Gruß Carsten