当前位置: 首页 > 知识库问答 >
问题:

用于GF4的OSGI包javax.servlet.http.HttpServlet-ClassNotFound

巢宏富
2023-03-14

这是我第一次尝试使用servlet制作一个osgi包。在谷歌之后,我制作了这个budnle,GlassFish4成功地启动了它。但当我在浏览器中尝试打开它时,我得到了

java.lang.ClassNotFoundException:在org.apache.felix.framework.BundleWiringImpl.FindClassorResourceByDevelop(bundleWiringImpl.java:1532)

我的清单文件:

manifest-version:1.0
bundle-manifestversion:2
bundle-symbolicname:tutu
bundle-version:1.0.0
bundle-classpath:WEB-INF/classes
Web-contextpath://tutu
import-package:javax.servlet,javax.servlet.annotation,javax.servlet.http

据我所知,osgi不导入这些包,尽管我可能错了。请帮忙解决这个问题。

编辑:我发现了错误。清单中的顺序是有意义的。所以最后的清单:

Manifest-Version: 1.0
Bundle-ManifestVershtml" target="_blank">ion: 2
Bundle-SymbolicName: tutu
Bundle-Name: tutut
Bundle-Version: 1.0.0
Import-Package: javax.servlet,javax.servlet.annotation, javax.servlet.http
Bundle-ClassPath: WEB-INF/classes
Web-ContextPath: /tutu

共有1个答案

胡弘毅
2023-03-14

在构建路径中添加servlet-api.jar并尝试。

 类似资料:
  • 我有一个osgi包,它是使用该特性部署在apache karaf中的。xml和服务注入是使用blueprint完成的。xml。如何在Weblogic OSGI容器中部署相同的捆绑包。 https://docs.oracle.com/middleware/1212/wls/WLPRG/osgi.htm#WLPRG764 我遵循了上面链接中提到的步骤。复制WLU HOME/server/OSGI li

  • 我正在使用Equinox构建一个OSGi应用程序。对于这个应用程序来说,可以更新各个bundle是至关重要的。 应用程序检查HTTP服务器上的文件夹中是否有新版本的捆绑包,以及是否有任何新捆绑包可用。如果有新的包可用,应用程序将加载*. jar文件并更新此包。更新是通过停止捆绑包,用加载文件的输入流更新它,然后再次启动捆绑包来执行的。 问题是,在更新文件和重新启动应用程序后,文件的旧版本被使用,而

  • 我在OSGI开发中使用了KURA,它运行在EclipseEquinox之上,我希望能够使用捆绑包中的“com.sun.net.httpserver.*”类。 我发现在这个链接下(在OSGi包中使用受限类),我必须使用OSGi框架属性通过系统包指定它: 我的问题是我不知道在哪里设置这个属性。你知道吗?

  • 我是OSGi的新手,很难将包包含到我的Maven项目中。 我使用mave-bundle-plugin创建了一个API包和一个实现包。在我的主要项目(一个Maven项目)中,我试图使用Felix框架从ServiceTracker获得已实现包的服务。当我最终尝试将获得的服务强制转换为正确的类型时,我会收到一个ClassCastException。 Maven使用以下清单文件创建了两个jar文件: 在我