与jni的alljoyn java问题

时间:2016-03-29 12:41:43

标签: java eclipse alljoyn

我正在尝试关注java的alljoyn核心教程,以便创建我的第一个alljoyn服务和客户端。不幸的是,每次启动服务时都会出现以下错误。

任何人都有想法摆脱它?

    package test;

import org.alljoyn.bus.AboutObj;
import org.alljoyn.bus.BusAttachment;
import org.alljoyn.bus.BusException;
import org.alljoyn.bus.BusListener;
import org.alljoyn.bus.BusObject;
import org.alljoyn.bus.Mutable;
import org.alljoyn.bus.SessionOpts;
import org.alljoyn.bus.SessionPortListener;
import org.alljoyn.bus.Status;

public class MyServiceObject {
    static {
        System.loadLibrary("alljoyn_java");
    }

    private static final short CONTACT_PORT=42;

    static boolean sessionEstablished = false;
    static int sessionId;

    public static class SampleService implements MyInterface, BusObject {

        @Override
        public void MyMethod(String inStr) throws BusException {
            // TODO Auto-generated method stub

        }

        @Override
        public void MySignal(String inStr) throws BusException {
            // TODO Auto-generated method stub

        }

        @Override
        public String GetMyProperty() throws BusException {
            // TODO Auto-generated method stub
            return null;
        }

        @Override
        public void SetMyProperty(String myProperty) throws BusException {
            // TODO Auto-generated method stub

        }
    }

    public static void main(String[] args) {

        BusAttachment mBus;
        mBus = new BusAttachment("AppName", BusAttachment.RemoteMessage.Receive);

        Status status;

        SampleService mySampleService = new SampleService();

        status = mBus.registerBusObject(mySampleService, "/example/path");
        if (status != Status.OK) {
            return;
        }
        System.out.println("BusAttachment.registerBusObject successful");

        mBus.registerBusListener(new BusListener());

        status = mBus.connect();
        if (status != Status.OK) {

            return;
        }
        System.out.println("BusAttachment.connect successful on " + System.getProperty("org.alljoyn.bus.address"));

        Mutable.ShortValue contactPort = new Mutable.ShortValue(CONTACT_PORT);

        SessionOpts sessionOpts = new SessionOpts();
        sessionOpts.traffic = SessionOpts.TRAFFIC_MESSAGES;
        sessionOpts.isMultipoint = false;
        sessionOpts.proximity = SessionOpts.PROXIMITY_ANY;
        sessionOpts.transports = SessionOpts.TRANSPORT_ANY;

        status = mBus.bindSessionPort(contactPort, sessionOpts,
                new SessionPortListener() {
            public boolean acceptSessionJoiner(short sessionPort, String joiner, SessionOpts sessionOpts) {
                System.out.println("SessionPortListener.acceptSessionJoiner called");
                if (sessionPort == CONTACT_PORT) {
                    return true;
                } else {
                    return false;
                }
            }
            public void sessionJoined(short sessionPort, int id, String joiner) {
                System.out.println(String.format("SessionPortListener.sessionJoined(%d, %d, %s)", sessionPort, id, joiner));
                sessionId = id;
                sessionEstablished = true;
            }
        });
        if (status != Status.OK) {
            return;
        }

        AboutObj aboutObj = new AboutObj(mBus);
        //status = aboutObj.announce(contactPort.value, new MyAboutData());
        if (status != Status.OK) {
            System.out.println("Announce failed " + status.toString());
            return;
        }
        System.out.println("Announce called announcing SessionPort: " + contactPort.value);

        while (!sessionEstablished) {
            try {
                Thread.sleep(10);
            } catch (InterruptedException e) {
                System.out.println("Thread Exception caught");
                e.printStackTrace();
            }
        }
        System.out.println("BusAttachment session established");

        while (true) {
            try {
                Thread.sleep(10000);
            } catch (InterruptedException e) {
                System.out.println("Thread Exception caught");
                e.printStackTrace();
            }
        }
    }
}
  

0.560 ****** ERROR ALLJOYN_JAVA外部... / jni / alljoyn_java.cc:12028 | org.alljoyn.bus.AnnotationBusException:无法确定null

的签名      

0.560 ****** ERROR ALLJOYN_JAVA外部... / jni / alljoyn_java.cc:12028 |在org.alljoyn.bus.Signature.typeSig(Signature.java:121)
  0.560 ****** ERROR ALLJOYN_JAVA外部... / jni / alljoyn_java.cc:12028 | at org.alljoyn.bus.InterfaceDescription.getPropertySig(InterfaceDescription.java:530)
  0.560 ****** ERROR ALLJOYN_JAVA外部... / jni / alljoyn_java.cc:12028 | at org.alljoyn.bus.InterfaceDescription.getProperties(InterfaceDescription.java:302)
  0.560 ****** ERROR ALLJOYN_JAVA外部... / jni / alljoyn_java.cc:12028 |在org.alljoyn.bus.InterfaceDescription.create(InterfaceDescription.java:163)
  0.560 ****** ERROR ALLJOYN_JAVA外部... / jni / alljoyn_java.cc:12028 |在org.alljoyn.bus.InterfaceDescription.create(InterfaceDescription.java:423)
  0.560 ****** ERROR ALLJOYN_JAVA外部... / jni / alljoyn_java.cc:12028 | at org.alljoyn.bus.BusAttachment.registerBusObject(BusAttachment.java:1357)
  0.560 ****** ERROR ALLJOYN_JAVA外部... / jni / alljoyn_java.cc:12028 | at org.alljoyn.bus.BusAttachment.registerBusObject(BusAttachment.java:1287)
  0.560 ****** ERROR ALLJOYN_JAVA外部... / jni / alljoyn_java.cc:12028 | at test.MyServiceObject.main(MyServiceObject.java:74)

0 个答案:

没有答案