Hi Andreas, I am using this method as it is good way to later integrate a solution that will load from a byte array. Am I going about this the wrong way? How should I load a DOCX file which is stored in a Java byte array into an OO XComponent? Do I even need an XComponent?
- Albert -----Original Message----- From: Andreas Schlüns [mailto:andreas.schlu...@sun.com] Sent: Friday, January 09, 2009 06:15 To: dev@api.openoffice.org Subject: Re: [api-dev] XComponentLoader.ComponentFromURL throws IllegalArgumentException: URL seems to be an unsupported one. Hi Albert, Why do you load the file using "private:stream" instead of using the original file:///-URL ? Let OOo do that stream stuff internaly. Loading via stream is supported but detection of pure streams without any hint about the URL or the mime type will fail very often ... especialy if ambigous formats like Text/Html or XML will be used :-) Regards Andreas > Hi Albert, > > your code works fine for me. Of course, I used only a simple odt > document. Perhaps the filter for loading the docx document cannot be > determined. You can add this to the properties for loadComponentFromUrl, > the name of the property is FilterName, the value the name of the filter > you'd like to use. > > Regards, Steffen > > > Albert Law wrote: >> Hi, >> Me, again. :) >> >> I'm having problems with XComponentLoader.ComponentFromURL where it is >> loading from an XinputStream. I'm a bit paranoid and don't >> want this to be a reoccurance of bug 75191 ( >> http://www.openoffice.org/issues/show_bug.cgi?id=75191 ). Can anyone >> see what I could >> have possibly done wrong in the following code? Thanks! >> >> ps: The ultimate goal is to load from a byte[]. This seemed to be a >> good first step. >> >> pps: Nothing is null and the file does exist. In fact, I have >> successfully loaded from a URL via "XComponent xComponent = >> xComponentLoader.loadComponentFromURL("file:///c:/test.docx", >> "_blank", 0, loadProps);" where "loadProps" is empty. >> >> ppps: I'm using the most recent version of everything. >> >> >> [begin] >> XComponentContext xContext = Bootstrap.bootstrap(); >> XMultiComponentFactory xServiceManager = xContext.getServiceManager(); >> Object desktop = >> xServiceManager.createInstanceWithContext("com.sun.star.frame.Desktop", >> xContext); >> XComponentLoader xComponentLoader = >> (XComponentLoader)UnoRuntime.queryInterface(XComponentLoader.class, >> desktop); >> XSimpleFileAccess xSimpleFileAccess = >> (XSimpleFileAccess)UnoRuntime.queryInterface(XSimpleFileAccess.class, >> xServiceManager.createInstanceWithContext("com.sun.star.ucb.SimpleFileAccess", >> >> xContext)); >> XInputStream xInputStream = >> xSimpleFileAccess.openFileRead("file:///c:/test.docx"); >> PropertyValue[] loadProps = new PropertyValue[1]; >> loadProps[0] = new PropertyValue(); >> loadProps[0].Name = "InputStream"; >> loadProps[0].Value = xInputStream; >> XComponent xComponent = >> xComponentLoader.loadComponentFromURL("private:stream", "_blank", 0, >> loadProps); >> [end] >> >> >> leads to (line numbers are off, of course): >> com.sun.star.lang.IllegalArgumentException: URL seems to be an >> unsupported one. >> at >> com.sun.star.lib.uno.environments.remote.Job.remoteUnoRequestRaisedException(Job.java:182) >> >> >> at >> com.sun.star.lib.uno.environments.remote.Job.execute(Job.java:148) >> at >> com.sun.star.lib.uno.environments.remote.JobQueue.enter(JobQueue.java:344) >> >> at >> com.sun.star.lib.uno.environments.remote.JobQueue.enter(JobQueue.java:313) >> >> at >> com.sun.star.lib.uno.environments.remote.JavaThreadPool.enter(JavaThreadPool.java:101) >> >> >> at >> com.sun.star.lib.uno.bridges.java_remote.java_remote_bridge.sendRequest(java_remote_bridge.java:652) >> >> >> at >> com.sun.star.lib.uno.bridges.java_remote.ProxyFactory$Handler.request(ProxyFactory.java:154) >> >> >> at >> com.sun.star.lib.uno.bridges.java_remote.ProxyFactory$Handler.invoke(ProxyFactory.java:136) >> >> >> at $Proxy3.loadComponentFromURL(Unknown Source) >> at com.snowbound.testOOUno.main(testOOUno.java:223) >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> at >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) >> >> >> at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) >> >> >> at java.lang.reflect.Method.invoke(Method.java:597) >> at com.sun.star.lib.loader.Loader.main(Loader.java:144) >> >> >> >> >> >> - >> Albert >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: dev-unsubscr...@api.openoffice.org >> For additional commands, e-mail: dev-h...@api.openoffice.org >> >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@api.openoffice.org > For additional commands, e-mail: dev-h...@api.openoffice.org > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@api.openoffice.org For additional commands, e-mail: dev-h...@api.openoffice.org --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@api.openoffice.org For additional commands, e-mail: dev-h...@api.openoffice.org