| 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: |
|
||||||
Дело в том, что 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;" патчи приветствуются Сейчас в сизифе не воспроизводится. Закрываю. |
При попытке запуска программы unoconv выводится ошибка: $ unoconv -f pdf tests/document-example.odt Traceback (most recent call last): File "/usr/bin/unoconv", line 564, in <module> main() File "/usr/bin/unoconv", line 543, in main convertor.convert(inputfn) File "/usr/bin/unoconv", line 449, in convert doc = self.desktop.loadComponentFromURL( inputurl , "_blank", 0, inputprops ) AttributeError: loadComponentFromURL В багзилле Debian есть аналогичная проблема: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=491456 Сам пакет unoconv есть в Сизифе.