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

在adobe CQ5中使用Servlet-API3包

陆海阳
2023-03-14

我试图在Adobe CQ5安装中使用servlet-api Version3,但没有成功。

已经有一个导出javax.servlet包(版本2.5)的包,所以我用版本3.1.0部署了一个包。这个包开始正常。

POST/system/console/bundles/250 HTTP/1.1]CQSE-HttpService%bundles.pluginTitle:无法启动(org.osgi.framework.bundleException:

在解析现有导入266.0.javax.servlet之间的模块250.9时,包“javax.servlet”的约束冲突

归咎于[[250.9]包;(&(package=javax.servlet)(版本>=3.0.0)(!(版本>=4.0.0)))]

    null

问题似乎是围绕着bundle 250的依赖关系,但我不确定问题是什么。一个包的两个版本可以在OSGi容器中共存。包210和93运行时没有问题。

共有1个答案

谷梁波
2023-03-14

这很可能是因为所使用的HTTP服务只支持Servlet2.5,这就是为什么这是预装的servlet版本。由于您安装了Servlet3.0api,您的包确实解决了问题,但是当它试图导出HTTP服务所接收的服务时,您遇到了这个问题。根本原因是所使用的HTTP服务实现。我不知道这是否可行,但您可以尝试使用Pax-Web2或3来替换http服务版本。Pax-Web从第2版起就支持Servlet API。

 类似资料:
  • 作为基础了解,在web应用程序范畴内使用 FreeMarker 和其它并没有什么不同; FreeMarker将它的输出写入传递给 Template.process 方法的 Writer 对象,它不关心 Writer 将输出写入控制台,文件或是 HttpServletResponse 的输出流。 FreeMarker 并不知道什么是servlet和web;它仅仅是使用模板文件来合并Java对象, 之

  • 这可能起作用,但由于某种原因,数据基本上是空的。我猜原因是因为过滤器不起作用。 我不太清楚如何包装Servlet过滤器,因为它们与Jersey ContainerRequestFilter期望不同的输入和输出。JerseyConfig中的以下实现似乎什么也不做,因为日志没有指示筛选器正在注册,而且在调试模式下不能中断这些文件中的行。

  • 问题内容: 在java Servlet中如何使用ajax? 问题答案: 实际上,关键字是“ ajax”:异步JavaScript和XML,它比异步JavaScript和JSON更为常见。基本上,让JS执行异步HTTP请求并根据响应数据更新HTML DOM树。 由于使其能够在所有浏览器(尤其是Internet Explorer与其他浏览器)上进行是一项繁琐的工作,因此有大量的JavaScript库简

  • 我正在尝试在我的Servlet 3.0 Web应用程序中使用Log4j2。即使按照官方留档配置了所有内容,我也无法看到日志。 这是我的web.xml: 我已将log4j2.xml文件放在WEB-INF/classes中: 这是我在类中调用logger的方式: 请告诉我我做错了什么。我甚至尝试过硬编码到log4j2的直接路径.xml,但仍然不起作用。

  • 我正在使用Glassfish服务器(一个简单的购物车)尝试我的第一个EJB。我打算为每个Http会话使用CartBean。如果我的车豆跟着-

  • 问题内容: 我想在Servlet中执行JavaScript。是否可以在所有servlet调用中重用相同的脚本引擎?Servlet实例由多个线程共享。这是否需要为每个请求创建一个新的脚本引擎?那将是不可接受的性能损失。例如,以下代码是否保存? } 如果这样做不安全,那么避免每个请求创建引擎的最佳方法是什么?使用引擎池? 编辑: 是否可以对所有Servlet请求重用一个同一个引擎和一个同一个JavaS