如何调用/bin/ wcommand servlet类从Java类在CQ5



如何从Java类调用开箱即用的CQ5 Jar中的"/bin/wcommand " servlet。HTTPClient和URL连接的方式,我不能使POST调用这个servlet。我得到错误代码:500。

不确定您所说的"已在开箱即用的CQ5 Jar内的servlet "是什么意思。我从您的问题中理解的是,您希望从Java类(而不是从JSP !)调用(HTTP GET/POST) servlet。

我假设它是一个Sling Servlet,并且已经用路径/资源类型或任何其他有效的方式注册了Servlet。

如果它注册为" path ",你可以通过多种方式触发HTTP请求。

  • java.net.URL
  • HTTPClient

引用:

使用java.net.URLConnection触发和处理HTTP请求

从Java类调用servlet

这个OOTB Sling servlet只接受Sling请求对象。所以不能像普通servlet一样在java类中直接使用HTTPClient调用。但是使用servlet通信解决了我的问题。我已经将调用类从java类更改为Sling servlet类,然后我使用servlet通信像这样进行通信。

RequestDispatcher req = request.getRequestDispatcher("/bin/wcmcommand");
req.include(request,response);

我想用不同的值多次调用这个servlet。因此,我使用SlingServletRequestWrapper类来修改request.getParameter()值,每次调用。

最新更新