 | OO-Snippets: Connect to Listening OpenOffice Variant 2 (BSF4Rexx)Commons| Keywords | connect, bootstrap, BSF4Rexx |
|---|
| Language | ooRexx |
|---|
| Application | Office |
|---|
| Authors | Rony G. Flatscher (initial)
|
|---|
| Supported Versions | 2.0.x |
|---|
| Supported OS | All |
|---|
| Question | How to connect to a already listening OpenOffice?
You can start OpenOffice in listening mode with e.g. this command:
soffice -accept=socket,host=localhost,port=8100;urp;
This commandline starts OpenOffice listening on port 8100
|
|---|
| Answer | This snippet connects to a listening OpenOffice and creates a wordprocessor document. |
|---|
call bsf.cls
unoRuntime = bsf.loadClass("com.sun.star.uno.UnoRuntime")
bootstrap = bsf.loadClass("com.sun.star.comp.helper.Bootstrap")
localCC = bootstrap~createInitialComponentContext(.nil)
localSM = localCC~getServiceManager
localUUR = localSM~createInstanceWithContext("com.sun.star.bridge.UnoUrlResolver", localCC)
interfaceXUUR = bsf.loadClass("com.sun.star.bridge.XUnoUrlResolver")
localXUUR = unoRuntime~queryInterface(interfaceXUUR, localUUR)
hostname="localhost"
hostport=8100
unoUrl = "uno:socket,host="hostname",port="hostport";urp;StarOffice.NamingService"
say "connecting using the URL:" pp(unoURL)"..."
remoteNS = localXUUR~resolve(unoUrl)
interfaceXNS = bsf.loadClass("com.sun.star.uno.XNamingService")
remoteXNS = unoRuntime~queryInterface(interfaceXNS, remoteNS)
remoteSM = remoteXNS~getRegisteredObject("StarOffice.ServiceManager")
interfaceXMSF = bsf.loadClass("com.sun.star.lang.XMultiServiceFactory")
remoteXMSF = unoRuntime~queryInterface(interfaceXMSF, remoteSM)
remoteD = remoteXMSF~createInstance("com.sun.star.frame.Desktop")
interfaceXD = bsf.loadClass("com.sun.star.frame.XDesktop")
remoteXD = unoRuntime~queryInterface(interfaceXD, remoteD)
interfaceXCL = bsf.loadClass("com.sun.star.frame.XComponentLoader")
remoteXCL = unoRuntime~queryInterface(interfaceXCL, remoteXD)
noProps = bsf.createArray(bsf.loadClass("com.sun.star.beans.PropertyValue"), 0)
writerComponent = remoteXCL~loadComponentFromURL("private:factory/swriter", "_blank", 0, noProps)
|
Changelog| Date | User | Modification |
|---|
| 2006-07-20 | RGF | Initial version |
|