Re: [api-dev] XComponentLoader.ComponentFromURL throws IllegalArgumentException: URL seems to be an unsupported one.
Hi Albert, I've debugged your problem and found out (as I've already mentioned) that some detection services dont work correctly in case pure input stream is provided only .-) An issue was filed by me so you can track if and when it will be fixed. http://www.openoffice.org/issues/show_bug.cgi?id=98023 Regards Andreas Hi Andreas, I tried MS Word 2007 XML, but that didn't help. So I'm willing to add extra hints. Though I'm a bit confused as to how I would set the MIME type information. How do I do so? And what should it be set to? Thanks. ps: I wish to use XinputStreams so that I may load from memory and avoid going to disk. It is a security requirement of the end-product. I would love to load files from URL and save myself the hassle of XInpuStream (and late XOutputStream). :) - Albert - To unsubscribe, e-mail: dev-unsubscr...@api.openoffice.org For additional commands, e-mail: dev-h...@api.openoffice.org
RE: [api-dev] XComponentLoader.ComponentFromURL throws IllegalArgumentException: URL seems to be an unsupported one.
Hi Andreas, I tried MS Word 2007 XML, but that didn't help. So I'm willing to add extra hints. Though I'm a bit confused as to how I would set the MIME type information. How do I do so? And what should it be set to? Thanks. ps: I wish to use XinputStreams so that I may load from memory and avoid going to disk. It is a security requirement of the end-product. I would love to load files from URL and save myself the hassle of XInpuStream (and late XOutputStream). :) - Albert -Original Message- From: Andreas Schlüns [mailto:andreas.schlu...@sun.com] Sent: Monday, January 12, 2009 03:07 To: dev@api.openoffice.org Subject: Re: [api-dev] XComponentLoader.ComponentFromURL throws IllegalArgumentException: URL seems to be an unsupported one. Hi Albert, The right FilterName is MS Word 2007 XML. And no ... you dont have to provide a XComponent. It should work if you use private:stream + FilterName + XInputStream. On the other side your example code showed me you have a valid URL ... and I was wondering why you dont used it here .-) Please note: Loading documents into OOo only by using streams (means URL=private:stream) wont have the same detection rate then using real and valid URL's ! As I've already mentioned ... some formats are ambigous. Providing a stream only wont solve that ambigous state. You have to provide MORE informations as e.g. MimeType/Extension/FilterName/TypeName/TargetApplicationName to make sure things will happen right. Regards Andreas Hi Steffen, Okay, that's worth a try... a few minutes later. Ya, it didn't work. Perhaps I'm using the wrong filter name. I've used the following filter names to no success. Microsoft Word 2007 XML writer_MS_Word_2007 MOOX Did I use the proper one? - Albert -Original Message- From: steffen.gr...@sun.com [mailto:steffen.gr...@sun.com] Sent: Friday, January 09, 2009 02:50 To: dev@api.openoffice.org Subject: Re: [api-dev] XComponentLoader.ComponentFromURL throws IllegalArgumentException: URL seems to be an unsupported one. 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
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
RE: [api-dev] XComponentLoader.ComponentFromURL throws IllegalArgumentException: URL seems to be an unsupported one.
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
Re: [api-dev] XComponentLoader.ComponentFromURL throws IllegalArgumentException: URL seems to be an unsupported one.
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