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的主要内容,如果未能解决你的问题,请参考以下文章