java - cq5无法创建servlet资源

标签 java servlets osgi aem sling

我在 CQ5 应用程序中创建一个 servlet:

import java.io.IOException;

import javax.servlet.ServletException;

import org.apache.felix.scr.annotations.sling.SlingServlet;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
import org.apache.sling.api.servlets.SlingAllMethodsServlet;

@SlingServlet(
        label = "Example Servlet",
        paths = {"/bin/project/signin"},
        methods = {"GET"},
        extensions = {"html"},
        metatype = false
)
public class SignInServlet extends SlingAllMethodsServlet  {

    private static final long serialVersionUID = 796802690004962223L;

    @Override
    protected void doGet(SlingHttpServletRequest request,
            SlingHttpServletResponse response) throws ServletException,
            IOException {
        doPost(request, response);
    }

    @Override
    protected void doPost(SlingHttpServletRequest request,
            SlingHttpServletResponse response) throws ServletException,
            IOException {
        response.setContentType("text/plain");
        response.getOutputStream().print("Sigin Servlet");
    }
}

我尝试通过rest-client调用它,但它返回:

No resource found for url: http://localhost:4502/bin/project/signin

我还在Felix端打开Sling Resource Resolver来测试它是否可用。但我收到了:

NonExistingResource, path=/bin/project/signin

/bin/ 已在 Fellix 的 Apache Sling Servlet/脚本解析器和错误处理程序中进行配置

最佳答案

@SlingServlet 注释中,您已声明此 servlet 仅支持带有 .html 扩展名的请求,因此您应该点击以下 URL:

http://localhost:4502/bin/project/signin.html

如果您不想使用该扩展,请从 servlet 注释中删除适当的参数。

关于java - cq5无法创建servlet资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21695519/

相关文章:

java - 使用 PDFBox 和 BouncyCaSTLe 签署 PDF

java - 在 servlet 环境(Tomcat Web 服务器)中使用 OPENSAML2 时出现编码错误

java - MySQL jdbc 驱动程序 ClassNotFoundException : com. mysql.jdbc.Driver

Tomcat,使用绝对路径的sendRedirect不起作用

java - OSGi内存管理

java - 请帮助调试该程序中的错误

java - 在方法内部创建的对象

java - 跟踪 OSGi 服务时,扩展 ServiceTracker 类和实现 ServiceTrackerCustomizer 接口(interface)之间有区别吗?

java - BadPaddingException RSA 加密/解密错误

tomcat - tomcat osgi 实现中的简单 Web 应用程序包 (WAB)