AEM-找不到Servlet资源

问题描述 投票:0回答:1

我是AEM的新手,并一直试图连接到我安装在新AEM实例上的AEM项目包上的servlet。

似乎无法找到servlet或找不到该servlet的路径,并且仔细检查了映射,但是迷失了其他东西。任何帮助将不胜感激!

吊索映射

<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
jcr:primaryType="sling:Mapping"
sling:internalRedirect="content/dam/test.$1.json"
sling:match="aem.test.com.4545/api/assets/v1/(.*)"/>

Servlet信息

`@Component(service = Servlet.class,
        property = {
                Constants.SERVICE_DESCRIPTION + "=Get Job Folder Info API",
                "sling.servlet.methods=" + HttpConstants.METHOD_POST,
                "sling.servlet.resourceTypes=" + "sling/servlet/default",
                "sling.servlet.selectors=" + "jobFolderInfo",
                "sling.servlet.extensions=" + APIConstants.JSON_EXTENSION_TYPE
        })
public class JobFolderInfoServlet extends SlingAllMethodsServlet {`

来自请求的错误日志

0 TIMER_START {请求处理}

1 COMMENT timer_end格式为{,}

6 LOG方法= POST,PathInfo =空

7 TIMER_START {handleSecurity}

1645 TIMER_END {1636,handleSecurity}身份验证者org.apache.sling.auth.core.impl.SlingAuthenticator@5f62558d返回true

1876 TIMER_START {ResourceResolution}

3112 TIMER_END {1234,ResourceResolution} URI = / api / assets / v1 / jobFolderInfo解析为Resource = NonExistingResource,路径= / apps / content / dam / test.jobFolderInfo.json

3119日志资源路径信息:SlingRequestPathInfo:path ='/ apps / content / dam / test.jobFolderInfo.json',selectorString ='jobFolderInfo',扩展名='json',后缀='null'

3119 TIMER_START {ServletResolution}

3122 TIMER_START {resolveServlet(/apps/content/dam/test.jobFolderInfo.json)}

3853 TIMER_END {730,resolveServlet(/apps/content/dam/test.jobFolderInfo.json)}使用servlet com.test.assets.api.servlets.JobFolderInfoServlet

3856 TIMER_END {736,ServletResolution} URI = / api / assets / v1 / jobFolderInfo由Servlet = com.test.assets.api.servlets.JobFolderInfoServlet处理

3860 LOG应用请求过滤器

3864日志调用过滤器:com.adobe.granite.resourceresolverhelper.impl.ResourceResolverHelperImpl

servlets sling aem-6
1个回答
0
投票

如果我的理解是正确的,那么您尝试使用浏览器中的localhost:4502/bin/your-servlet-path之类的URL连接到servlet。如果是这种情况,请使用path注册servlet。在上面的servlet代码中,您已经使用资源类型注册了。

要使用路径注册,请使用sling.servlet.paths=/bin/your-servlet-path

Here是一个链接,可以帮助您更好地了解注册servlet。

希望这会有所帮助!

© www.soinside.com 2019 - 2024. All rights reserved.