【问题标题】:How to call a OSGI servlet through AJAX from a normal JAVA class?如何从普通的 JAVA 类通过 AJAX 调用 OSGI servlet?
【发布时间】:2015-01-15 13:28:14
【问题描述】:

这听起来很奇怪,但我有一个项目要求,我有一个带有 servlet 的 OSGI 包,我需要在 java 的另一个 Web 项目中调用这个 servlet。

要求:当我向包含 servlet 的 OSGI 包发送 AJAX 请求(我在 OSGI 包中的 servlet 在路径上注册 - "bin/redeem/search")时,它应该返回响应。 p>

我做了什么:我创建了一个 OSGI 包,其中包含一个带有业务逻辑的 servlet。

开发设置:我正在使用 MyEclipse 作为 IDE,并且我设置了一个 Web 项目,该项目假定将 AJAX 请求触发到 OSGI 包。

或者,有没有办法可以将我的 servlet 打包为 JAR 或 WAR,然后我可以从其他 Web 应用程序触发 AJAX 请求?

建议将被采纳。提前致谢。

【问题讨论】:

    标签: java jakarta-ee servlets osgi aem


    【解决方案1】:

    如果我理解正确,您有一些 CQ5 实例和一些绑定到 url http://somedomain/bin/redeem/search 的 servlet。 您需要从其他常规 Web 项目中调用它。

    然后您可以使用 Apache HttpClient 来调用您的 servlet。

    它可能看起来像:

    HttpClient client = new HttpClient();
    GetMethod method = new GetMethod("http://somedomain/bin/redeem/search");
    
    try {
      int statusCode = client.executeMethod(method);
    
      //check status code
    
      byte[] responseBody = method.getResponseBody();
    
      // Do something with response from your serlvet
    
    } catch (Exception e) {
    
        // handle exception
    } finally {
      method.releaseConnection();
    }  
    

    另外,您可能首先需要登录系统或允许匿名访问。 完整示例您可以找到here

    如果我理解错了,请提供详细信息或一些伪代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-13
      • 2014-12-16
      • 2014-04-07
      • 2018-03-25
      • 2021-06-24
      • 1970-01-01
      • 2019-10-25
      • 1970-01-01
      相关资源
      最近更新 更多