我刚刚通过maven.packaging创建了一个Sling servlet as - " bundle"然后我将它安装在CQ5的系统控制台内。
我的捆绑包向我显示活动状态和所有必需的包..已成功导出。
但是当我调用这个bundle来使用servlet时......没有任何反应。 它没有给我回应。 有没有更好的方法..创建一个sling servlet并创建一个OSGI包,这样我就可以在CQ5中将它作为一个包安装,从组件中调用servlet。
答案 0 :(得分:0)
您可以像这样创建SlingSerlvet。
@SlingServlet(
paths={"/services/myapp/LoginController/validateUser","/services/myapp/LoginController/logout"})
@Properties({
@Property(name="service.pid", value="com.xxx.xxx.controller.LoginController",propertyPrivate=false),
@Property(name="service.description",value="Validates the user", propertyPrivate=false),
@Property(name="service.vendor",value="xxx Tech", propertyPrivate=false)
})
public class LoginController extends SlingAllMethodsServlet{
private static final long serialVersionUID = 1L;
@Override
protected void doPost(SlingHttpServletRequest request,
SlingHttpServletResponse response) throws ServletException,
IOException {
}
@Override
protected void doGet(SlingHttpServletRequest request,
SlingHttpServletResponse response) throws ServletException,
IOException {
}
}
要在浏览器中调用此servlet,只需键入URL“/ services / myapp / LoginController / validateUser” 和“/ services / myapp / LoginController / logout”你可能已经知道serlvet可以有多个URL。
这是Code的一部分工作。 确保您的网址映射,即路径(在Sling / CQ5中)以/ services
开头您也可以使用专用的Eclipse for CQ5 CRXDE Eclipse而不是Maven bundle创建bundle。 它使用起来要容易得多,但速度有点慢。下载Here
答案 1 :(得分:0)
Bingo ..最后我能够调用捆绑为OSGI捆绑的sling sevlet并部署在CQ的系统控制台中。 后来我打电话给这个OSGI包发了一个帖请求,这次能够得到响应。 这是斯科特的一个非常好的,非常具有说明性的教程,解释了我的问题的每一步。
http://scottsdigitalcommunity.blogspot.in/2013/06/posting-form-data-to-adobe-cq-using.html
可以从这里找到示例代码或示例应用程序链接 -
http://helpx.adobe.com/experience-manager/using/custom-sling-servlets.html
一步一步地按照上面的链接,你最终获得了胜利。 我按照每个步骤,通过CRXDE中的组件成功调用了OSGI bundle的servlet。 最后不要忘记感谢斯科特....感谢斯科特的解释!!!