2013-03-06 6 views
2

org.freedesktop에서 dbus-java를 사용하여 dbus에 객체를 등록하려고합니다. documentation에 따르면 이러한 작업을 수행하려면 DBusConnection을 만들고 개체를 만들고 DBusConnection에서 exportObject 메서드를 호출해야합니다.dbus-java를 사용하여 dbus 객체를 등록하는 방법은 무엇입니까?

내 코드 :

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에 의해 자동으로 생성 된 인터페이스의 구현 (C와 함께 사용하는 동안 XML이 잘 작동 ++ (QT)).

dbAccess는 dbus에서 일부 데이터 (대부분 int)를 데이터베이스에서 보냅니다. 그것은 모두 Qt에서 잘 작동하지만 Java (내 언어가 아님)에서 다시 구현해야합니다. DBUS - 자바를 사용하기 위해

당신은 libmatthew 디버그를 설치하고 내가 일하고 있어요

-Djava.library.path =는/usr/lib 디렉토리/JNI

으로 프로그램을 실행해야 Linux Mint.

답변

5

두 가지 :

  1. 당신은 DBusInterface를 확장 인터페이스를 구현하기 위해, 먼저 즉 conn.requestBustName("com.example")
  2. DatabaseAccessImpl 요구를 버스 이름을 등록해야합니다.

Here's 내가 잠시 전에 작성한 튜토리얼은 무슨 일이 일어나는지 이해하는 데 도움이되는 코드로 작성되었습니다.

+0

이 자습서에서는 그 위치가 어디입니까? 프로젝트에 참조를 추가하려면 어떻게해야합니까 ?? –

관련 문제