OSGI EventAdmin tidak dapat mengirim acara - mendapatkan pengecualian poin nol di Produser

Saya mencoba mengirim acara ke konsumen. Saya mendapatkan NullPointerException

Ini kode acara saya

public class Activator implements BundleActivator {

    EventAdmin eventAdmin;
    @Override
    public void start(BundleContext bundleContext) throws Exception {
        System.out.println("started");
        Dictionary<String, String> properties = new Hashtable<>();
        properties.put("test", "blah");
        Event event = new Event("test/sent", properties);
        System.out.println("sending");
        eventAdmin.sendEvent(event);
    }

    @Override
    public void stop(BundleContext bundleContext) throws Exception {
        System.out.println("stopped ");
    }
} 

Ini LOGnya

Anda menggunakan bidang eventAdmin yang tidak pernah disetel. Jadi, Anda mendapatkan NullPointerException. Saya menyarankan untuk menggunakan layanan deklaratif dan memasukkan EventAdmin menggunakan @Reference.


person TheTechGuy    schedule 26.08.2019    source sumber


Jawaban (1)


Lihat Admin Acara OSGi – Publikasikan & Berlangganan dari Vogella untuk semua detailnya.

org.osgi.framework.BundleException: Pengecualian di com.aml.project.Activator.start() dari bundel h. di org.Eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:863) di org.Eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:791) di org.eclipse.osgi.internal .framework.EquinoxBundle.startWorker0(EquinoxBundle.java:1013) di org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:365) di org.eclipse.osgi.container.Module.doStart(Module .java:598) di org.Eclipse.osgi.container.Module.start(Module.java:462) di org.Eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:439) di org.apache. felix.gogo.command.Basic.start(Basic.java:739) di java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Metode Asli) di java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl .java:62) di java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) di java.base/java.lang.reflect.Method.invoke(Method.java:567) di org. apache.felix.gogo.runtime.Reflective.invoke(Reflective.java:139) di org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:91) di org.apache.felix.gogo.runtime. Closure.executeCmd(Closure.java:599) di org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:526) di org.apache.felix.gogo.runtime.Closure.execute(Closure.java: 415) di org.apache.felix.gogo.runtime.Pipe.doCall(Pipe.java:416) di org.apache.felix.gogo.runtime.Pipe.call(Pipe.java:229) di org.apache.felix .gogo.runtime.Pipe.call(Pipe.java:59) di java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) di java.base/java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1128) di java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) di java.base/java.lang.Thread.run(Thread.java:835) Disebabkan oleh: java.lang.NullPointerException di com.aml.project.Activator.start(Activator.java:21) di org.Eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:842) di org.Eclipse .osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:1) di java.base/java.security.AccessController.doPrivileged(AccessController.java:552) di org.eclipse.osgi.internal.framework. BundleContextImpl.startActivator(BundleContextImpl.java:834) ... 23 java.lang.NullPointerException lainnya

person Christian Schneider    schedule 27.08.2019