libdbus-java - CreateInterface завершается с ошибкой [Fatal Error] introspect.dtd:1:3:

Я ищу написать какой-нибудь служебный скрипт с groovy, который использует dbus. Согласно документации по CreateInterface, следующая команда должна сгенерировать исходный файл Java для объекта approrpriate.

CreateInterface --session  org.freedesktop.Notifications /org/freedesktop/Notifications

Но независимо от того, какой интерфейс я выбрал для создания исходного файла, команда не работает

> [Fatal Error] introspect.dtd:1:3: The markup declarations contained or pointed to by the document type declaration must be well-formed.
Exception in thread "main" org.xml.sax.SAXParseExceptionpublicId: -//freedesktop//DTD D-BUS Object Introspection 1.0//EN; systemId: http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd; lineNumber: 1; columnNumber: 3; The markup declarations contained or pointed to by the document type declaration must be well-formed.
    at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:257)
    at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:339)
    at org.freedesktop.dbus.bin.CreateInterface.createInterface(CreateInterface.java:702)
    at org.freedesktop.dbus.bin.CreateInterface.main(CreateInterface.java:685)

Это происходит 16.04 и 16.10. Я не пробовал другие версии Ubuntu. Кто-нибудь знает, если эта утилита не работает или я что-то не так делаю?

1 ответ

Просто запустите следующее:

gdbus introspect --session --dest org.freedesktop.Notifications --object-path /org/freedesktop/Notifications --xml | sed -e '/DOCTYPE/d' -e '/introspect.dtd/d' > org.freedesktop.Notifications.xml
CreateInterface --system --create-files org.freedesktop.Notifications.xml
Другие вопросы по тегам