我试图从/ libs / foundation / src / impl / src / main / java / com / day / cq / wcm / foundation / pro file / impl / ProfileImages.java
扩展ProfileImages servlet并捆绑为OSGI服务。
我有以下注释
@Component(immediate=true)
@SlingServlet(
resourceTypes = {"nt:file"},
methods = {"GET"},
selectors = {"adjust","adjust.small"},
extensions = {"res", "jpg", "png", "gif"}
)
我在OSGI控制台中的捆绑包和服务中看到了我的服务。但是,它不像用于执行的ProfileImages servlet那样做
如果我们调用以下网址,则ProfileImages会创建缩略图
如果我的servlet被调用,我应该得到相同的响应
但是我得到的是404来自DefaultGetServlet
似乎Sling servet无法解析我的servlet
我需要知道的一件事是如何在
中更新我的服务Apache Sling Servlet Resolverorg.apache.sling.servlets.resolver
我的servlet与sling servlet解析器中的以下服务做同样的事情
服务ID 843类型: org.apache.sling.api.resource.ResourceProvider
描述:Servlet的ServletResourceProvider [/libs/foundation/components/primary/nt/file/prof/thumbnail.gif.servl et,/ libs/foundation/components/primary/nt/file/prof.gif.servlet, /libs/foundation/components/primary/nt/file/prof/thumbnail.res.servle t,/ libs/foundation/components/primary/nt/file/prof.jpg.servlet, /libs/foundation/components/primary/nt/file/prof.png.servlet, /libs/foundation/components/primary/nt/file/prof/thumbnail.png.servle T, /libs/foundation/components/primary/nt/file/prof/thumbnail.jpg.servle t,/ libs/foundation/components/primary/nt/file/prof.res.servlet]
我的服务应该列在带有id和类似
的吊索解析器中..... / adjust.small.jpg.servlet,.... / adjust.res.servlet 我正在使用CRXDE网络版进行开发 有什么配置可以让我的资源解析器服务吗?
答案 0 :(得分:0)
您的servlet无法解析,因为它未在Declarative Services Runtime中注册。 @Component和@SlingServlet注释不会在运行时进行评估,它们是Apache Felix SCR插件项目的一部分,它提供了一个maven插件和ant任务来创建“OSGi Declarative Services”描述符。 http://felix.apache.org/documentation/subprojects/apache-felix-maven-scr-plugin.html
要将Servlet注册为OSGi服务,需要OSGI-INF / serviceComponents.xml文件。
因此,如果您打算使用scr注释,我担心在上传到CQ5之前,您不会使用构建生命周期工具来构建OSGi包。 否则,您必须手动创建服务组件文件。