Bug 22363 - Не работает loadComponentFromURL
: Не работает loadComponentFromURL
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/openoffice.org)
: unstable
: all Linux
: P3 major
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2009-11-23 11:41 by
Modified: 2018-09-19 15:40 (History)


Attachments
Тестовый скрипт (1.24 KB, application/octet-stream)
2009-11-24 17:10, Ilya Shpigor
no flags Details


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2009-11-23 11:41:21
При попытке запуска программы 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 From 2009-11-24 11:43:31 -------
Дело в том, что 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 From 2009-11-24 12:15:00 -------
запускайте soffice, а не soffice.bin
------- Comment #3 From 2009-11-24 16:56:55 -------
(В ответ на комментарий №2)
> запускайте soffice, а не soffice.bin

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

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

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

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


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

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

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

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

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

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

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

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

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