我有一个文件名
apps\cq\personalization\components\clientcontext\command\thumbnail\png.java
这个文件有什么用。这个文件似乎产生了许多静态分析问题。
首先,在 AEM 中,可以将 JAVA 文件放入 jcr 存储库中。它们将被视为与任何脚本(jsp、sightly 等)相同的方式,并遵循相同的渲染条件。在 AEM 中呈现大多数图像的img.JAVA
servlet 就是一个很好的例子。
在您的情况下,您的文件是原始文件的覆盖/libs/cq/personalization/components/clientcontext/command/thumbnail/png.java
,这意味着它可能是原始文件的变体。
这是一个 servlet,它将响应png
带有 resourceType 资源扩展名的请求cq/personalization/components/clientcontext/command/thumbnail
。
快速浏览它,它似乎只是渲染了位于 AEM 客户端上下文路径内的图像。
我同意你的观点,这是一种奇怪的方法(注意文件中的 TODO)。如果您需要一个覆盖并且不想在您的存储库中保留 Java 文件,您可以通过使用@SlingServlet
注释为正确的扩展名和 resourceType 注册相同的 servlet 作为 OSGi 声明式服务来实现相同的目的。