• Laden von entfernten Dokumenten
• Laden von entfernten Dokumenten
Posted by
gibelium
at
2007-03-20 09:29:07
Hallo,ich habe gerade versucht ein ott-Template zu laden das auf einem anderen Rechner liegt. Mit einer Url im Format "//server/verz/datei" bekomme ich die Fehlermeldung das die Url nicht unterstützt wird. Auch mit dem Prefix "file:" bleibt die Fehlermeldung.
ag.ion.bion.officelayer.document.DocumentException: URL seems to be an unsupported one. at ag.ion.bion.officelayer.internal.document.DocumentService.loadDocument(DocumentService.java:467) at ag.ion.bion.officelayer.internal.document.DocumentService.loadDocument(DocumentService.java:434) Bei der Google-Suche fand ich folgendes Codesnippet. Office.CreateUNOCompatibleURL.snip Ist diese Funktion in NOA bereits implementiert? Wenn nicht, wie kann ich den Context aus einer IOfficeApplication abgreifen, um ihn dem ExternalUriReferenceTranslator zu übergeben? Vielen Dank für die Hilfe, |
gibelium
Member
Posts:
21
|
• Re: Laden von entfernten Dokumenten
Posted by
Markus Krueger
at
2007-03-20 11:47:08
Hallo Sebastian,
wir nutzen einen selbst erstellten URLAdapter zu finden im Paket ag.ion.noa.document. Ich habe gerade einen Test durchgeführt und konnte ohne weiteres ein Dokument aus dem Netzwerk laden. Hier mein Snippet:
Gruß,Markus |
• Re: Laden von entfernten Dokumenten
Posted by
gibelium
at
2007-03-27 20:56:53
Super... Den URLAdapter hatte ich noch nicht gefunden...
Danke für den Hinweis... |
gibelium
Member
Posts:
21
|
• Re: Laden von entfernten Dokumenten
Posted by
gibelium
at
2007-03-28 11:52:05
Guten Morgen... Ich habe soeben nochmal meinen Aufruf mit Deinem Snippet verglichen, alles gleich... Dann nochmal (man kann ja etwas übersehen) Dein Snippet kopiert, aber nein, immer wieder die gleiche Fehlermeldung, wenn ich ein Dokument oder Template vom Server laden will. Ich poste mal den kompletten Stacktrace. Evtl. siehst Du den Fehler. ag.ion.bion.officelayer.document.DocumentException: URL seems to be an unsupported one. at ag.ion.bion.officelayer.internal.document.DocumentService.loadDocument(DocumentService.java:467) at com.mbee.ivory.client.ui.command.commandExecutors.NewCustomerLetterExecutor.createOoFrame(NewCustomerLetterExecutor.java:167) at com.mbee.ivory.client.ui.command.commandExecutors.NewCustomerLetterExecutor.execute(NewCustomerLetterExecutor.java:117) at org.springframework.richclient.command.TargetableActionCommand.doExecuteCommand(TargetableActionCommand.java:99) at org.springframework.richclient.command.ActionCommand.execute(ActionCommand.java:195) at com.mbee.ivory.client.ui.view.CustomerView$NewCustomerLetterExecutor.execute(CustomerView.java:104) at org.springframework.richclient.command.support.AbstractActionCommandExecutor.execute(AbstractActionCommandExecutor.java:124) at org.springframework.richclient.command.TargetableActionCommand.doExecuteCommand(TargetableActionCommand.java:99) at org.springframework.richclient.command.ActionCommand.execute(ActionCommand.java:195) at org.springframework.richclient.command.ActionCommand$1.actionPerformed(ActionCommand.java:126) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.AbstractButton.doClick(Unknown Source) at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source) at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) Caused by: com.sun.star.lang.IllegalArgumentException: URL seems to be an unsupported one. at com.sun.star.lib.uno.environments.remote.Job.remoteUnoRequestRaisedException(Job.java:275) at com.sun.star.lib.uno.environments.remote.Job.execute(Job.java:141) at com.sun.star.lib.uno.environments.remote.JobQueue.enter(JobQueue.java:377) at com.sun.star.lib.uno.environments.remote.JobQueue.enter(JobQueue.java:346) at com.sun.star.lib.uno.environments.remote.JavaThreadPool.enter(JavaThreadPool.java:106) at com.sun.star.lib.uno.bridges.java_remote.java_remote_bridge.sendRequest(java_remote_bridge.java:860) at com.sun.star.lib.uno.bridges.java_remote.java_remote_bridge.sendRequest(java_remote_bridge.java:809) at com.sun.star.lib.uno.bridges.java_remote.ProxyFactory$Handler.request(ProxyFactory.java:159) at com.sun.star.lib.uno.bridges.java_remote.ProxyFactory$Handler.invoke(ProxyFactory.java:141) at $Proxy17.loadComponentFromURL(Unknown Source) at ag.ion.bion.officelayer.internal.document.DocumentLoader.loadDocument(DocumentLoader.java:221) at ag.ion.bion.officelayer.internal.document.DocumentLoader.loadDocument(DocumentLoader.java:200) at ag.ion.bion.officelayer.internal.document.DocumentService.loadDocument(DocumentService.java:460) ... 36 more Probiert habe ich folgende Kombinationen jeweils in Slash- und Backslash-Schreibweise:
Im Endeffekt funktioniert bei mir momentan nur die letze Version mit lokalem Netzlaufwerk und ich kann nicht erkennen warum dem so ist. System: Windows XP Prof auf Client & Server. Ich bin ratlos. |
gibelium
Member
Posts:
21
|
• Re: Laden von entfernten Dokumenten
Posted by
gibelium
at
2007-04-04 14:16:43
Hallo, Leider habe ich das im Thread beschriebene Problem immernoch nicht lösen können... Heute habe ich versucht den Spieß umzudrehen und ein neues Dokument auf dem Server zu speichern. Dabei wird ein I/O Fehler mit dem Fehlercode 796 gemeldet. Jetzt wäre es praktisch zu wissen was dieser bedeutet.. Wieder funktioniert das speichern (genau wie beim Laden) nur über ein angeschlossenes Netzlaufwerk, das einen Laufwerksbuchstaben hat. URLs werden immer mit dem 796er Fehler abgelehnt. ag.ion.bion.officelayer.document.DocumentException: Ein Eingabe/Ausgabe bezogener Fehler ist aufgetreten. Der Fehlercode lautet 796. at ag.ion.bion.officelayer.internal.document.PersistenceService.store(PersistenceService.java:195) at com.mbee.ivory.client.ui.view.TemplateFrame$3$1.onFinish(TemplateFrame.java:265) at org.springframework.richclient.dialog.InputApplicationDialog.onFinish(InputApplicationDialog.java:144) at org.springframework.richclient.dialog.ApplicationDialog$1.doExecuteCommand(ApplicationDialog.java:390) at org.springframework.richclient.command.ActionCommand.execute(ActionCommand.java:195) at org.springframework.richclient.command.ActionCommand$1.actionPerformed(ActionCommand.java:126) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.AbstractButton.doClick(Unknown Source) at javax.swing.plaf.basic.BasicRootPaneUI$Actions.actionPerformed(Unknown Source) at javax.swing.SwingUtilities.notifyAction(Unknown Source) at javax.swing.JComponent.processKeyBinding(Unknown Source) at javax.swing.KeyboardManager.fireBinding(Unknown Source) at javax.swing.KeyboardManager.fireKeyboardAction(Unknown Source) at javax.swing.JComponent.processKeyBindingsForAllComponents(Unknown Source) at javax.swing.JComponent.processKeyBindings(Unknown Source) at javax.swing.JComponent.processKeyEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.KeyboardFocusManager.redispatchEvent(Unknown Source) at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(Unknown Source) at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(Unknown Source) at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Source) at java.awt.DefaultKeyboardFocusManager.dispatchEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.Dialog$1.run(Unknown Source) at java.awt.Dialog$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.awt.Dialog.show(Unknown Source) at java.awt.Component.show(Unknown Source) at java.awt.Component.setVisible(Unknown Source) at java.awt.Window.setVisible(Unknown Source) at java.awt.Dialog.setVisible(Unknown Source) at org.springframework.richclient.dialog.ApplicationDialog.showDialog(ApplicationDialog.java:314) at com.mbee.ivory.client.ui.view.TemplateFrame$3.doExecuteCommand(TemplateFrame.java:297) at org.springframework.richclient.command.ActionCommand.execute(ActionCommand.java:195) at org.springframework.richclient.command.ActionCommand$1.actionPerformed(ActionCommand.java:126) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) Caused by: com.sun.star.task.ErrorCodeIOException: at com.sun.star.lib.uno.environments.remote.Job.remoteUnoRequestRaisedException(Job.java:275) at com.sun.star.lib.uno.environments.remote.Job.execute(Job.java:141) at com.sun.star.lib.uno.environments.remote.JobQueue.enter(JobQueue.java:377) at com.sun.star.lib.uno.environments.remote.JobQueue.enter(JobQueue.java:346) at com.sun.star.lib.uno.environments.remote.JavaThreadPool.enter(JavaThreadPool.java:106) at com.sun.star.lib.uno.bridges.java_remote.java_remote_bridge.sendRequest(java_remote_bridge.java:860) at com.sun.star.lib.uno.bridges.java_remote.java_remote_bridge.sendRequest(java_remote_bridge.java:809) at com.sun.star.lib.uno.bridges.java_remote.ProxyFactory$Handler.request(ProxyFactory.java:159) at com.sun.star.lib.uno.bridges.java_remote.ProxyFactory$Handler.invoke(ProxyFactory.java:141) at $Proxy25.storeAsURL(Unknown Source) at ag.ion.bion.officelayer.internal.document.PersistenceService.store(PersistenceService.java:184) ... 74 more Wäre super, wenn mir jemand auf die Sprünge helfen könnte. |
gibelium
Member
Posts:
21
|
• Re: Laden von entfernten Dokumenten
Posted by
gibelium
at
2007-04-05 15:25:43
Hallo zusammen, ich habe gestern die Arbeit des UrlAdapter überprüft und festgestellt das er die gegebenen URLs nicht für alle Fälle konsistent umwandelt. Hier die Ergebnisse des Tests: url-to-test: \\\\server-IP\\verz\\docs\\templates\\test.ott url-to-test: file:\\\\server-IP\\verz\\docs\\templates\\test.ott url-to-test: file://server-IP/verz/docs/templates/test.ott url-to-test: server-IP/verz/docs/templates/test.ott url-to-test: //server-IP/verz/docs/templates/test.ott url-to-test: localhost/verz/docs/templates/test.ott url-to-test: //localhost/verz/docs/templates/test.ott url-to-test: D:/verz/docs/templates/test.ott URLAdapter-NOA: file:///////server-IP/verz/docs/templates/test.ott URLAdapter-NOA: file:////server-IP/verz/docs/templates/test.ott URLAdapter-NOA: file:////server-IP/verz/docs/templates/test.ott URLAdapter-NOA: file:///server-IP/verz/docs/templates/test.ott URLAdapter-NOA: file:///////server-IP/verz/docs/templates/test.ott URLAdapter-NOA: file:///localhost/verz/docs/templates/test.ott URLAdapter-NOA: file:///////localhost/verz/docs/templates/test.ott URLAdapter-NOA: file:///D:/verz/docs/templates/test.ott MyURLAdapter: file://server-IP/verz/docs/templates/test.ott MyURLAdapter: file://server-IP/verz/docs/templates/test.ott MyURLAdapter: file://server-IP/verz/docs/templates/test.ott MyURLAdapter: file://server-IP/verz/docs/templates/test.ott MyURLAdapter: file://server-IP/verz/docs/templates/test.ott MyURLAdapter: file://localhost/verz/docs/templates/test.ott MyURLAdapter: file://localhost/verz/docs/templates/test.ott MyURLAdapter: file://D:/verz/docs/templates/test.ott Die Ausgaben mit dem Prefix "MyURLAdapter:" produziert meine angepasste Version des URLAdapters. MyURLAdapter prüft den Anfang der übergebenen Zeichenkette und fügt bei Bedarf den richtigen Prefix hinzu. Hier der Code der geänderten adaptURL Methode:
public static String adaptURL(String url) throws MalformedURLException {
if(url == null) return null;
url = url.replace('\\', '/' );
try {
URL urlObject = new URL(url);
url = urlObject.toExternalForm();
}
catch(Throwable throwable) {
if(url.startsWith("//")) url = "file:" + url;
else url = "file://" + url;
URL urlObject = new URL(url);
url = urlObject.toExternalForm();
}
url = url.replaceAll(" ", "%20");
return url;
}
Lieben Gruß, |
gibelium
Member
Posts:
21
|
• Re: Laden von entfernten Dokumenten
Posted by
Markus Krueger
at
2007-04-05 15:32:44
Hallo Sebastian,
funktioniert denn nun alles nach deiner Änderung bei dir? Gruß, Markus |
• Re: Laden von entfernten Dokumenten
Posted by
gibelium
at
2007-04-08 15:07:13
Hallo Markus,
der letzte Stand ist das ich die URLAdapter.adaptURL() komplett auskommentiert und das Paket new kompiliert habe. Diese und seltsamerweise aussschließlich diese Variante funktioniert bei mir problemlos für lokale und entfernte Dateien. Die Standard-Variante funktionierte auch nach Neuinstallation von OpenOffice 2.2 und NOA 2.0.8 in zwei verschiedenen Windows-Netzwerken nicht für Dateien auf anderen Rechnern. Evtl. eine JDK6 Unverträglichkeit? Für mich funktioniert auf jeden Fall die Variante mit auskommentierter adaptUrl-Methode. Besten Dank, Sebastian |
gibelium
Member
Posts:
21
|
• Re: Laden von entfernten Dokumenten
Posted by
Markus Krueger
at
2007-04-10 11:51:12
Hi Sebastian,
funktioniert es auch nicht mit deiner angepassten adaptURL-Methode? Ich würde sonst den Code übernehmen... Gruß, Markus |
• Re: Laden von entfernten Dokumenten
Posted by
gibelium
at
2007-04-11 13:04:41
Hallo Markus, Meine ursprüngliche Version funktionierte leider nicht mit lokalen Dateien. Ich denke das habe ich im neuen Versuch soweit gelöst. Die Methode verarbeitet jetzt URLs in den folgenden Schemen.
//remote files: ['file:']//(HOST-IP | HOST-NAME | 'localhost')/PATH*/FILE
//local files: ['file:']['/' | '///'](DRIVELETTER)/PATH*/FILE Dabei werden HOSTNAMEN und die Angabe 'localhost' in die zugehörige IP-Adresse umgesetzt. Übergebene URLs mit keinem, einem oder drei '/' werden als lokale URLs behandelt. Bei zwei führenden Slashs ('//') behandelt die Mehtode die URL als remote-URL. Getestet habe ich mit folgenden URLs:
Die Methode habe ich als Anhang hochgeladen. Lieben Gruß, |
gibelium
Member
Posts:
21
|
• Re: Laden von entfernten Dokumenten
Posted by
gibelium
at
2007-04-11 13:05:21
Anhang vergessen |
gibelium
Member
Posts:
21
|


