【问题标题】:How to replace name = "sling.servlet.paths", value = "/bin/services/Servlet"), value = "/SomethingElse/services/Servlet"),如何替换 name = "sling.servlet.paths", value = "/bin/services/Servlet"), value = "/SomethingElse/services/Servlet"),
【发布时间】:2016-01-27 11:36:41
【问题描述】:

在 AEM 6 SP3 中,我有一个 servlet,我想在其中替换“/bin/services/Servlet”中的属性名称值,例如:

, value = "/SomethingElse/services/Servlet"

如何启用它并签入到我的 git/SVN ?

【问题讨论】:

  • 请注意,根据sling.apache.org/documentation/the-sling-engine/servlets.html,如果可以避免的话,不建议在路径上安装 servlet。引用该页面,“在所需路径创建资源,其资源类型映射到 servlet,在大多数情况下提供相同的结果,同时利用更多 Sling 内置功能” - 包括细粒度的访问控制。

标签: content-management-system aem


【解决方案1】:

AEM 允许将少量上下文路径作为 servlet 访问,/bin 是用于内部 servlet 的默认路径之一,对于任何项目特定的 servlet,您可能需要使用一些不同的内容路径来添加您在 OSGI 服务中的上下文路径 Apache Sling Servlet Resolver PID: org.apache.sling.servlets.resolver.SlingServletResolver

【讨论】:

  • 感谢 Mohit,但我想这不能添加到代码仓库中以进行签入。我们可以以某种方式将此上下文路径添加为运行模式吗?
  • 是的,使用 .xml 在你的运行模式文件夹中创建一个运行模式,并添加所有现有配置 + 你的新 servlet 上下文路径。
  • 感谢 Mohit,但似乎此 pid 未列在 /system/console/configMgr 中以将其添加到运行模式并获取要附加的参数详细信息。
  • @Ajax:搜索服务名称Apache Sling Servlet/Script Resolver and Error Handler
  • 嗨 @Ajax 对你有用吗,对我来说,只有当我在执行路径中保留所有内容时它才有效,如果我添加 /SomethingElse/services/Servlet 它在 302 重定向后开始给出 403跨度>
【解决方案2】:

另一种方法是在Apache Sling Resource Resolver Factory 中添加一个 URL 映射。

可作为应用程序的一部分部署的示例配置文件:

org.apache.sling.jcr.resource.internal.JcrResourceResolverFactoryImpl.xml

<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
    jcr:primaryType="sling:OsgiConfig"
    resource.resolver.mapping="[/bin/services/:/SomethingElse/services/]"/>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-17
    • 1970-01-01
    • 1970-01-01
    • 2015-03-19
    • 2022-01-06
    • 2011-06-17
    相关资源
    最近更新 更多