我试图使用org.freedesktop中的dbus在dbus上注册对象。根据文档,这样的操作需要:创建DBusConnection、创建对象和在DBusConnection上调用方法exportObject。
我的守则:
DatabaseAccessImpl dbAccess = new DatabaseAccessImpl();
System.out.println("Object created.");
System.out.println("Trying to connect session bus");
try {
conn = DBusConnection.getConnection(DBusConnection.SESSION);
} catch(DBusException ex) {
ex.printStackTrace();
}
System.out.println("Connected to session bus.");
System.out.println("Trying to register dbus object");
try {
conn.exportObject("/obj/path", new DatabaseAccessImpl());
} catch (DBusException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}其中:
DatabaseAccessImpl是CreateInterface自动创建的接口的实现(xml,与c++ (Qt)一起使用)。
dbAccess将在dbus上从数据库发送一些数据(大部分是ints)。所有这些在Qt中都很好,但是我必须用java (不是我的语言)重新实现它。
要使用dbus-java,您必须安装libmatthew调试程序,并使用
-Djava.Library ary.path=/usr/lib/jni
我在研究Linux。
发布于 2013-03-06 15:46:04
有两件事:
conn.requestBustName("com.example")DatabaseAccessImpl需要实现一个扩展DBusInterface的接口。下面是是我不久前用代码编写的一个教程,它可以帮助您了解正在发生的事情。
https://stackoverflow.com/questions/15251256
复制相似问题