Summary: | Не работает loadComponentFromURL | ||||||
---|---|---|---|---|---|---|---|
Product: | Sisyphus | Reporter: | Ilya Shpigor <shpigor> | ||||
Component: | openoffice.org | Assignee: | Nobody's working on this, feel free to take it <nobody> | ||||
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus | ||||
Severity: | major | ||||||
Priority: | P3 | CC: | grenka, lav, real.altlinux.org, real, shpigor, shrek | ||||
Version: | unstable | ||||||
Hardware: | all | ||||||
OS: | Linux | ||||||
Attachments: |
|
Description
Ilya Shpigor
2009-11-23 11:41:21 MSK
Дело в том, что unoconv запускает soffice примерно такой коммандой: soffice.bin -nologo -nodefault -accept="socket,host=localhost,port=2002;urp;StarOffice.ComponentContext" Если делать это вручную перед запуском unoconv, то будут сообщения, как в описано выше. Если просто запустить unoconv: unoconv -f pdf test.doc Missing vcl resource. This indicates that files vital to localization are missing. You might have a corrupt installation. terminate called after throwing an instance of 'com::sun::star::uno::RuntimeException' Missing vcl resource. This indicates that files vital to localization are missing. You might have a corrupt installation. terminate called after throwing an instance of 'com::sun::star::uno::RuntimeException' Error: Unable to connect or start own listener. Aborting. Возможно, это как-то связано с работой openoffice? запускайте soffice, а не soffice.bin (В ответ на комментарий №2) > запускайте soffice, а не soffice.bin К сожалению, не помогло. Те же проблемы, что и с soffice.bin Created attachment 4079 [details]
Тестовый скрипт
Тестовый скрипт, демонстрирующий ошибку.
Перед запуском надо вручную запустить:
soffice "-accept=socket,host=localhost,port=2002;urp;"
Взят по упомянутой выше ссылке на багзилу Debian.
Что-то и я пока решения на горизонте не разглядел. А у других-то всё не так плохо, даже unoconv --listener работает.... Вот кто мне про листенер объяснил, вдруг, и мне откроется частичка истины, как чинить этот (не будем скрывать) около года назад продукт. Я вообще-то не против пыток. Ради дела. Предлагаю поймать хотя бы одного юзера, у которого работает unoconv, и.... ну... по-максимуму, чтобы отмолчаться не смог ;) Кстати, как советовал lav@, я сделал apt-get install java-1.6.0-sun mozilla-plugin-java-1.6.0-sun Ноль реакции. от lav@: "Там ошибка в OOo, по крайней мере я пробовал тест работы с UNO из C++, и он тоже не заработал. Надо что-то сделать." Может быть, нужно перевесить на openoffice.org? > Может быть, нужно перевесить на openoffice.org?
Я за. Мне тоже кажется, что openoffice.org ведет себя не совсем правильно.
Перевешиваю. "кажется", "мерещится" и т.п. не мой профиль (In reply to comment #11) > "кажется", "мерещится" и т.п. не мой профиль Приведенный выше тестовый скрипт на Debian отрабатывает без ошибок. Только надо переменной FILE присвоить путь до существующего файла. Значит проблема либо в питоновском модуле uno, либо в openoffice. Проверил: Модуль uno относится к пакету openoffice.org По ссылке, кстати, есть и проверка, что в НАШЕМ openoffice.org компонент UNO не работает (а вот в CentOS работает), ругается "AttributeError: loadComponentFromURL" Could you try the following script: [testunoconv.py (text/x-python, inline)] #!/usr/bin/env python FILE='file:///home/philippe/data/cv/philippe_bourcier.rtf' import uno From com.sun.star.beans import PropertyValue localContext = uno.getComponentContext() resolver = localContext.ServiceManager.createInstanceWithContext( "com.sun.star.bridge.UnoUrlResolver", localContext) ctx = resolver.resolve( "uno:socket,host=localhost,port=2002;urp;StarOffice.ComponentContext" ) smgr = ctx.ServiceManager desktop = smgr.createInstanceWithContext( "com.sun.star.frame.Desktop",ctx) inputprops = ( PropertyValue( "Hidden" , 0 , True, 0 ), ) doc = desktop.loadComponentFromURL( FILE , "_blank", 0, inputprops ) [Message part 3 (text/plain, inline)] You need to start OpenOffice with the following command before: soffice "-accept=socket,host=localhost,port=2002;urp;" "You need to start OpenOffice with the following command before: soffice "-accept=socket,host=localhost,port=2002;urp;"" Поправка: в НАШИХ [= сизиф] условиях я запускал листенер вот так: /usr/lib/openoffice.org/program/soffice.bin "-accept=socket,host=localhost,port=2002;urp;" патчи приветствуются Сейчас в сизифе не воспроизводится. Закрываю. |