Servlets AEM CQ5 servlet不';在本地环境中不会被调用

Servlets AEM CQ5 servlet不';在本地环境中不会被调用,servlets,aem,development-environment,Servlets,Aem,Development Environment,我是AEM开发的新手,在我当地的环境中遇到了一些问题。 我使用的代码与当前服务器上的代码相同(一切正常),因此我猜我这方面一定有一些错误的配置 因此,我有一个servlet,在尝试下载资产时应该调用它: @Component(metatype = false) @Service @Properties({ @Property(name = "sling.servlet.resourceTypes", value = "sling/servlet/default"), @Property(

我是AEM开发的新手,在我当地的环境中遇到了一些问题。 我使用的代码与当前服务器上的代码相同(一切正常),因此我猜我这方面一定有一些错误的配置

因此,我有一个servlet,在尝试下载资产时应该调用它:

@Component(metatype = false)
@Service
@Properties({ @Property(name = "sling.servlet.resourceTypes", value = "sling/servlet/default"),
    @Property(name = "sling.servlet.methods", value = { "GET", "POST" }),
    @Property(name = "sling.servlet.selectors", value = "assets") })
public class AssetDownloadServlet extends SlingAllMethodsServlet
例如,它由“资产”选择器触发

http://localhost:4502/content/.assets.zip?path=content/folder/asset.jpg&_charset_=utf-8
问题是,如果我在酒吧里写一个像这样的URL,它工作得很好。servlet将被调用并下载asset.jpg

不起作用的是Javascript代码,当用户单击一个按钮时,它会构建URL,将其放入一个隐藏的表单中,然后提交表单。在本例中,根本不会调用servlet(我将一些断点置于调试模式下进行检查),并显示以下页面:

Status           200
Message          OK
Location         /content/aem/download
Parent Location  /content/aem
Path             /content/aem/download
Referer          http://localhost:4502/content/aem/download.html
ChangeLog        <pre></pre>

Go Back
Modified Resource
Parent of Modified Resource
状态200
消息OK
位置/内容/aem/下载
父位置/内容/aem
路径/内容/aem/下载
推荐人http://localhost:4502/content/aem/download.html
变更日志
http://localhost:4502/content/assets.zip?path=content/folder/asset.jpg&_charset_=utf-8
回去 改良资源 已修改资源的父级
正如我所说的,代码不应该出错,因为它在服务器上工作。我甚至不知道该去哪里了解我在当地做了什么错事

编辑:


我打开了一个相关问题,因为问题可能是另一种性质的:

因为我看到您的url中没有选择器:

http://localhost:4502/content/assets.assets.zip?path=content/folder/asset.jpg&_charset_=utf-8
在这里我可以看到

  • potocol+主机:
  • 资源路径:/content/assets
  • 扩展名:.zip
  • param1:path=content/folder/asset.jpg
  • param2:charset=utf-8
如果希望触发servlet,应该在路径和扩展之间添加选择器(.assets

更多信息,请参见文档:


对不起,我把URL写错了。实际的URL已经是@CaterinaBano(在主帖子中已更正)@CaterinaBano如果URL中没有正确的资源路径,请尝试/content.assets.zip或/content/someNode.assets.zip。你应该有有效的资源路径,/content/不是有效路径。举个例子,我没有用网站的实际文件夹结构复制真实的url。将其视为内容/文件夹/资产.zip?等。。。无论如何,正如我所说的,URL和代码不应该是一个问题,因为它们在服务器上工作,我的本地服务器上一定有一些配置阻止调用servlet,但我不知道在哪里可以查看它可能是什么。请转到/system/console/request,然后请求您的url,并尝试在您的自定义服务之前找出触发了什么筛选器或servlet如果我尝试访问system/console/request,我会出错:“找不到请求的页面。如果您在3秒钟内没有被转发到Web控制台,请单击此处”,然后将我重定向到bundles。我需要做什么具体的事情吗?