java - GF4 javax.servlet.http.HttpServlet 的 OSGI bundle - ClassNotFound

标签 java jakarta-ee servlets glassfish osgi

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

java.lang.ClassNotFoundException: javax.servlet.http.HttpServlet not found by ... [299] at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1532)

我的 list 文件:

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 中的顺序是有意义的。所以最终的 list :

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

最佳答案

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

关于java - GF4 javax.servlet.http.HttpServlet 的 OSGI bundle - ClassNotFound,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22803661/

相关文章:

java - jackson (反)序列化对象作为它的 id

c# - 如何将结构数据类型从 Java 传递到 MS SQL 数据库

java - 哪些版本的相关技术适用于J2EE 1.4、5和6?

jakarta-ee - (如何)从 $CATALINA_{HOME|BASE}/lib 中的类访问/WEB-INF/{lib|classes} 中的 jar

Tomcat报错eclipse juno

jsp - IE自定义404错误页面无法运行JSP

java - 自上次重启以来的时间 : how can i convert?

java - 如何为游戏创建 2D 运动场?

javascript - JS 中的拖放区域 - 文件输入

java - 同时从两个不同线程插入/更新实体