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

Posted

技术标签:

【中文标题】GF4 javax.servlet.http.HttpServlet 的 OSGI 包 - ClassNotFound【英文标题】:OSGI bundle for GF4 javax.servlet.http.HttpServlet - ClassNotFound 【发布时间】:2014-05-13 06:37:59 【问题描述】:

这是我第一次尝试制作一个带有 servlet 的 osgi 包。谷歌搜索后,我制作了这个 budnle,它由 glassfish 4 成功启动。但是当我在浏览器中尝试打开它时,我得到了

java.lang.ClassNotFoundException: javax.servlet.http.HttpServlet 不是 由 ... [299] 在 org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(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 导入包: javax.servlet,javax.servlet.annotation, javax.servlet.http

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

编辑: 我发现了错误。清单中的顺序是有道理的。所以最终的清单:

Manifest-Version: 1.0
Bundle-ManifestVersion: 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】:

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

【讨论】:

以上是关于GF4 javax.servlet.http.HttpServlet 的 OSGI 包 - ClassNotFound的主要内容,如果未能解决你的问题,请参考以下文章

我要创建付费销售发票的透明报表

BPEL 模块中的外部 WSDL:地址已在使用中 8080

十万火急!请教3D-analyze设置和使用的详细方法