标签: aem

从Sling/CQ中的捆绑包获取OSGi服务

我正在使用Day CQ.我想使用Felix控制台中提供的连接池将一些数据存储在SQL Server数据库中.我可以通过使用在defineObjects标记中定义的SlingScriptHelper类型的"sling"对象从JSP执行此操作

sling.getService(DataSourcePool.class).
Run Code Online (Sandbox Code Playgroud)

但是,我想使用在OSGi包中创建的servlet来处理来自客户端的请求.servlet没有defineObjects标记,因此未定义"sling"对象.我没有看到在servlet中创建有效的SlingScriptHelper对象的方法,但似乎必须可行.

有办法吗?

osgi servlets connection-pooling sling aem

11
推荐指数
2
解决办法
2万
查看次数

将选择下拉列表添加到对话框窗口

我在如何为选择对话框添加选项方面遇到了困难.

我正在阅读的Adobe笔记在这里:CQ.form.Selection

向下滚动options : Object[]/String将显示两种方法来引用选项,通过对象或字符串提供所述选择.我正在尝试使用对象方法.他们提供的格式示例就足够了.

[
    {
        value: "pink", // all types except "combobox"
        text: "Pink",
        qtip: "Real Pink" // "select" and "combobox"
    }
]
Run Code Online (Sandbox Code Playgroud)

但是,CRXDE Lite不允许我在添加新属性时选择或键入Object,这是我不知所措的地方.还有另一种输入复杂价值的方法吗?

aem

10
推荐指数
1
解决办法
2万
查看次数

限制AEM 5.6.1中的组件

如何限制AEM 5.6.1中可以在模板的特定分析中使用而不在设计模式中选择它们的组件?

aem

10
推荐指数
1
解决办法
8856
查看次数

IntelliJ IDEA中如何避免"软件包依赖关系未导出软件包"错误?

我使用CQ5原型创建了一个新的Maven项目,并将其导入IntelliJ IDEA.IntelliJ标记某些类的用法,例如org.apache.felix.annotations.Component,org.apache.felix.annotations.ReferenceIntellIJ与以下错误消息一样错误:

The package is not exported by the bundle dependencies
Run Code Online (Sandbox Code Playgroud)

IntelliJ OSGi错误消息

  1. 这是合法的错误吗?
  2. 我该如何解决(与禁用检查相反)?

osgi intellij-idea maven aem

10
推荐指数
1
解决办法
1万
查看次数

传统包com.day.cq.workflow和com.adobe.granite.workflow之间的差异

据我了解,Granite是Adobe的名称,将Felix,Sling和CRX组合为基础平台.我目前正在研究CQ工作流程,特别是开发自定义WorkflowProcess.我注意到其中有两个看似相同的包,com.adobe.granite.workflow.exec (包概述)com.day.cq.workflow.exec (包概述).

我看到已弃用的类(例如JavaProcess)已被删除,并且已添加新的类(例如InboxItem),而其他类似乎保持不变(例如WorkflowProcess).WorkflowProcess我的自定义WorkflowProcess类应该实现哪些包的接口?

aem

10
推荐指数
1
解决办法
1032
查看次数

为什么在CQ中为每个服务使用@Component注释

我对跟进事情感到有点困惑.我理解@Service@Component注释是我们在OSGi中定义组件或服务时的主要​​注释.我指的是http://felix.apache.org/documentation/subprojects/apache-felix-maven-scr-plugin/scr-annotations.html以及OSGi组件和服务之间有什么区别

问题:

  1. 没有@Component注释就无法创建服务,为什么会这样?

  2. 我理解,一旦我们定义了一个服务,它的生命周期就会被OSGi管理得不同,但这样做有什么好处?

  3. 我们如何使用定义为@Component的类作为服务可以通过访问 sling.getService(ServiceName.class)

osgi aem

10
推荐指数
1
解决办法
6940
查看次数

在AEM中触摸UI v/s Classic UI

我们如何检查Adobe Experience Manager/CQ5中的html页面是以触摸模式还是经典模式打开?

aem

10
推荐指数
1
解决办法
1596
查看次数

Vite 构建中存在浏览器兼容性错误,模块已外部化

我目前正在开发一个使用Vite 4.3.2 版本的项目,并通过aem-vite插件与 Adob​​e Experience Manager (AEM)集成。该项目还包括“@aem-vite/vite-aem-plugin”和“@aem-vite/import-rewriter”。

我面临的问题是该项目在开发服务器上运行良好,但在为生产构建时抛出错误。我在浏览器控制台中收到的错误消息是:

模块“”已外部化以实现浏览器兼容性。无法访问客户端代码中的“.custom”。

模块“”部分没有明确说明可能导致此问题的实际模块。

这是我的整个 vite.config.ts 文件:


    export default defineConfig(({ command, mode }) => ({
      plugins: [
        vue(),
        vueJsx(),
        tsconfigPaths(),
        viteForAem({
          contentPaths: [designsName, 'content'],
          publicPath: clientLibsPath,
        }),
        bundlesImportRewriter({
          publicPath: clientLibsPath,
          resourcesPath: 'resources/js',
        }),
        commonjs({
          include: '/node_modules/',
          requireReturnsDefault: 'auto',
          defaultIsModuleExports: 'auto',
        }),
      ],
      optimizeDeps: {
        include: ['qs', 'dayjs'],
      },
      resolve: {
        alias: {
          '@': fileURLToPath(new URL(clientScriptsPath, import.meta.url)),
          'aem-base': aemBaseClientPath(),
          ...createLibMock('lib/proxyImport', 'proxyImport'),
          ...createLibMock('components/mixins/isMobile', 'isMobile'),
          components: aemBaseClientPath('scripts/components'),
          constants: aemBaseClientPath('scripts/constants'),
          lib: aemBaseClientPath('scripts/lib'), …
Run Code Online (Sandbox Code Playgroud)

aem vue.js vite

10
推荐指数
2
解决办法
8229
查看次数

服务器端包含和Sling动态包括哪些区别?

任何人都可以告诉我服务器端包含和吊索动态包含和它们各自的用例之间的区别?

jsp ssi sdi aem

9
推荐指数
1
解决办法
3676
查看次数

Sightly中HTML href属性的默认/正确上下文

我正在使用Sightly,在调查我的应用程序中的一个错误时,我注意到了一个我没想到的行为.

某些链接会在查询字符串中使用&符号进行两次转义.例:

<a href="http://www.google.com?a=1&amp;amp;b=2&amp;amp;c=3">
    link with explicit attribute context
</a>
Run Code Online (Sandbox Code Playgroud)

经过仔细检查,结果发现我们在AEM中运行的org.apache.sling.rewriter.Transformer所有href属性中都有一个实现转义特殊字符.

加上Sightly XSS保护,这导致了双重逃逸.

在进一步研究这个问题时,我禁用了变压器,发现Sightly本身有一种奇怪的行为.

href属性中的属性上下文和默认上下文不匹配

鉴于以下三个元素,我希望它们以href相同的方式呈现值(查询字符串被转义,符合W3C标准)

<a href="${'http://www.google.com?a=1&b=2&c=3'}">no explicit context, expression used</a>
<a href="http://www.google.com?a=1&b=2&c=3">no explicit context</a>
<a href="${'http://www.google.com?a=1&b=2&c=3' @ context='attribute'}">
    explicit attribute context
</a>
Run Code Online (Sandbox Code Playgroud)

但是,只有最后一个执行转义,我得到

<a href="http://www.google.com?a=1&b=2&c=3">no explicit context, expression used</a>
<a href="http://www.google.com?a=1&b=2&c=3">no explicit context</a>
<a href="http://www.google.com?a=1&amp;amp;b=2&amp;amp;c=3">
    explicit attribute context
</a>
Run Code Online (Sandbox Code Playgroud)

出于某种原因,最后一个,使用context='attribute'(唯一一个与&字符做某事的人)两次逃脱&符号,产生无效链接.

这可以通过任意元素和属性名称来实现,所以我想我可以放心地认为这不是一些重写者.

<stargate data-custom="${'http://www.google.com?a=1&b=2&c=3' @ context='attribute'}">
    attribute context in custom tag
</stargate>
Run Code Online (Sandbox Code Playgroud)

输出:

<stargate data-custom="http://www.google.com?a=1&amp;amp;b=2&amp;amp;c=3">
    attribute context in custom …
Run Code Online (Sandbox Code Playgroud)

html5 aem sightly

9
推荐指数
1
解决办法
4889
查看次数

标签 统计

aem ×10

osgi ×3

connection-pooling ×1

html5 ×1

intellij-idea ×1

jsp ×1

maven ×1

sdi ×1

servlets ×1

sightly ×1

sling ×1

ssi ×1

vite ×1

vue.js ×1