Bug 22363

Summary: Не работает loadComponentFromURL
Product: Sisyphus Reporter: Ilya Shpigor <shpigor>
Component: openoffice.orgAssignee: 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 Flags
Тестовый скрипт none

Description Ilya Shpigor 2009-11-23 11:41:21 MSK
При попытке запуска программы 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 есть в Сизифе.
Comment 1 Ilya Shpigor 2009-11-24 11:43:31 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?
Comment 2 Valery Inozemtsev 2009-11-24 12:15:00 MSK
запускайте soffice, а не soffice.bin
Comment 3 Ilya Shpigor 2009-11-24 16:56:55 MSK
(В ответ на комментарий №2)
> запускайте soffice, а не soffice.bin

К сожалению, не помогло. Те же проблемы, что и с soffice.bin
Comment 4 Ilya Shpigor 2009-11-24 17:10:11 MSK
Created attachment 4079 [details]
Тестовый скрипт

Тестовый скрипт, демонстрирующий ошибку.

Перед запуском надо вручную запустить:
soffice "-accept=socket,host=localhost,port=2002;urp;"

Взят по упомянутой выше ссылке на багзилу Debian.
Comment 5 real@altlinux.org 2010-01-01 09:58:54 MSK
Что-то и я пока решения на горизонте не разглядел. А у других-то всё не так плохо, даже unoconv --listener работает....


Вот кто мне про листенер объяснил, вдруг, и мне откроется частичка истины, как чинить этот (не будем скрывать) около года назад продукт.
Comment 6 real@altlinux.org 2010-01-01 12:19:09 MSK
Я вообще-то не против пыток. Ради дела.

Предлагаю поймать хотя бы одного юзера, у которого работает unoconv, и.... ну... по-максимуму, чтобы отмолчаться не смог ;)
Comment 7 real@altlinux.org 2010-01-01 23:25:33 MSK
Кстати, как советовал lav@, я сделал apt-get install java-1.6.0-sun mozilla-plugin-java-1.6.0-sun

Ноль реакции.
Comment 8 real@altlinux.org 2010-01-13 09:20:07 MSK
от lav@:
"Там ошибка в OOo, по крайней мере я пробовал тест работы с UNO из 
C++, и он тоже не заработал.
Надо что-то сделать."

Может быть, нужно перевесить на openoffice.org?
Comment 9 Ilya Shpigor 2010-01-13 10:30:36 MSK
> Может быть, нужно перевесить на openoffice.org?

Я за. Мне тоже кажется, что openoffice.org ведет себя не совсем правильно.
Comment 10 real@altlinux.org 2010-01-13 11:11:52 MSK
Перевешиваю.
Comment 11 Valery Inozemtsev 2010-01-13 11:40:20 MSK
"кажется", "мерещится" и т.п. не мой профиль
Comment 12 Ilya Shpigor 2010-01-13 19:02:52 MSK
(In reply to comment #11)
> "кажется", "мерещится" и т.п. не мой профиль

Приведенный выше тестовый скрипт на Debian отрабатывает без ошибок.

Только надо переменной FILE присвоить путь до существующего файла.

Значит проблема либо в питоновском модуле uno, либо в openoffice.
Comment 13 Ilya Shpigor 2010-01-13 21:03:48 MSK
Проверил:

Модуль uno относится к пакету openoffice.org
Comment 14 real@altlinux.org 2010-01-14 07:31:32 MSK
По ссылке, кстати, есть и проверка, что в НАШЕМ 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;"
Comment 15 real@altlinux.org 2010-01-14 07:34:33 MSK
"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;"
Comment 16 Valery Inozemtsev 2010-01-15 11:02:24 MSK
патчи приветствуются
Comment 17 Grigory Ustinov 2018-09-19 15:40:56 MSK
Сейчас в сизифе не воспроизводится. Закрываю.