首页 > 解决方案 > 为什么我在 OSGi 框架上运行时收到 java.lang.ClassNotFoundException:com.google.api.client.json.JsonFactory

问题描述

我是 OSGi 的新手,我创建了一个调用 Google 翻译 API 的方法。当我在 main 中调用该方法时,它工作正常。我还使用 Eclipse 进行编码并将项目从 Eclipse 导出到 jar 文件中,并将其安装在 apache felix 框架上。当我启动捆绑包时,我得到以下异常,我也将所有外部 jar 文件添加到构建路径。

org.osgi.framework.BundleException: Activator start error in bundle EnglishToSinhalaServicePublisher [58].
        at org.apache.felix.framework.Felix.activateBundle(Felix.java:2452)
        at org.apache.felix.framework.Felix.startBundle(Felix.java:2308)
        at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:998)
        at org.apache.felix.gogo.command.Basic.start(Basic.java:739)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.apache.felix.gogo.runtime.Reflective.invoke(Reflective.java:139)
        at org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:91)
        at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:599)
        at org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:526)
        at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:415)
        at org.apache.felix.gogo.runtime.Pipe.doCall(Pipe.java:416)
        at org.apache.felix.gogo.runtime.Pipe.call(Pipe.java:229)
        at org.apache.felix.gogo.runtime.Pipe.call(Pipe.java:59)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NoClassDefFoundError: com/google/api/client/json/JsonFactory
        at englishtosinhalaservicepublisher.Activator.start(Activator.java:46)
        at org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:698)
        at org.apache.felix.framework.Felix.activateBundle(Felix.java:2402)
        ... 19 more
Caused by: java.lang.ClassNotFoundException: com.google.api.client.json.JsonFactory not found by EnglishToSinhalaServicePublisher [58]
        at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1597)
        at org.apache.felix.framework.BundleWiringImpl.access$300(BundleWiringImpl.java:79)
        at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1982)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        ... 22 more
java.lang.NoClassDefFoundError: com/google/api/client/json/JsonFactory
g!

标签: osgiapache-felix

解决方案


推荐阅读