【问题标题】:how to call a sling servlet through osgi bundle inside CQ5如何通过 CQ5 中的 osgi 包调用 sling servlet
【发布时间】:2014-12-16 12:33:05
【问题描述】:

我刚刚通过 maven.packaging 创建了一个 Sling servlet 作为 - “bundle”,然后我将它安装在 CQ5 的系统控制台中。

我的包显示活动状态和所有必需的包..导出成功。

但是当我调用这个包来使用 servlet 时……什么也没发生。 它没有给我回应。 有没有更好的方法..创建一个 sling servlet 并创建一个 OSGI 包,以便我可以将它作为一个包安装在 CQ5 中以从组件调用 servlet。

【问题讨论】:

    标签: servlets osgi bundle aem sling


    【解决方案1】:

    你可以像这样创建 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。

    这是一段工作代码。 确保您的 URL 映射,即路径(在 Sling/CQ5 中)以 /services 开头

    您也可以使用 CQ5 CRXDE Eclipse 的专用 Eclipse 而不是 Maven 包来创建包。 它更容易使用,但速度有点慢。下载Here

    【讨论】:

    • 感谢奥利弗。它部分适用于我,但在调用 servlet 时仍然出现问题。但我得到了一个非常好的 tut,它 100% 有效,并且与你的步骤相似。再次感谢您的支持:)
    【解决方案2】:

    Bingo.. 最后我可以调用捆绑为 OSGI 包并部署在 CQ 的系统控制台中的 sling sevlet。 后来我称这个 OSGI 包触发了一个 post 请求,这一次能够得到响应。 这是 Scott 的一个非常好的和非常解释性的教程,解释了我的问题的每一个步骤。

    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 包的 servlet。 最后不要忘记感谢斯科特....感谢斯科特的解释!!!

    【讨论】:

      猜你喜欢
      • 2014-06-03
      • 1970-01-01
      • 2014-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-15
      • 2017-06-13
      • 1970-01-01
      相关资源
      最近更新 更多