【问题标题】:Java/Maven: integrating org.freedesktop.NetworkManagerJava/Maven:集成 org.freedesktop.NetworkManager
【发布时间】:2020-03-04 16:34:54
【问题描述】:

是否有已发布的可靠方法将 org.freedesktop.NetworkManager 包拉入 Maven 构建?在https://mvnrepository.com 上搜索,我找到了this,但我认为它不是org.freedesktop.NetworkManager,无论如何,该工件不再存在于https://jcenter.bintray.com/ 上。

【问题讨论】:

    标签: java maven dbus networkmanager


    【解决方案1】:

    在这种情况下,通常会使用自省数据生成代码。 NetworkManager 的存储库中有许多 introspection XML files,具体取决于您尝试控制的内容。

    如果您使用原始的dbus-java 2.7 bindings,您将使用CreateInterface 类。如果您使用更新后的3.2 bindings from hypfvieh,您可以使用InterfaceCodeGenerator 类生成代码。我建议使用 3.2 绑定,因为许多错误已得到修复,并且可以通过 Maven Central 获得。

    【讨论】:

    • 是否有关于如何使用 InterfaceCodeGenerator 的说明?顺便说一句,我正在使用 hypfvieh 的 3.2 绑定。
    • 我玩过 InterfaceCodeGenerator 但我看不出它有什么帮助。例如,它生成了 public interface Wireless extends DBusInterface { ... public void RequestScan(Map> options); ... } 但这并没有给我一个 RequestScan 的实现。是的,我知道 RequestScan 是 org.freedesktop.NetworkManager.Device.Wireless 公开的 DBus 方法,但它仍然需要在客户端进行一些编组代码。
    • @Michael 您需要使用Connection.getRemoteObject 方法来获取远程对象来调用这些方法。该库使用反射来确定您正在调用的方法并根据该方法编组数据。更多详情请看我的教程:rm5248.com/d-bus-tutorial
    • 谢谢@rm5248 -- 这让我向前迈出了一大步,但现在代码ssidPoint.RequestScan(new HashMap<String, Variant<?>>()) 引发了DBusExecutionException:Rejected send message, 2 matched rules; type="method_call", sender=":1.16232" (uid=573 pid=4034148 comm="/usr/lib64/jvm/icedtea-bin-8/bin/java -classpath /") interface="org.freedesktop.networkmanager.device.Wireless" member="RequestScan" error name="(unset)" requested_reply="0" destination="org.freedesktop.NetworkManager" (uid=0 pid=424 comm="/usr/sbin/NetworkManager --no-daemon "),Google 博士因此失败了。
    • 修复了上面的 ^ 所以我会把它留给其他人狩猎。自动生成的接口在包名称上的大小写错误,因此:package org.freedesktop.networkmanager.device; ... @DBusInterfaceName("org.freedesktop.NetworkManager.Device.Wireless") public interface Wireless extends DBusInterface ... ...我必须自己添加注释。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-15
    • 2014-11-04
    • 2010-12-09
    相关资源
    最近更新 更多