- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们在 CQ5 中创建了一个 Simple Sling Servlet 作为 OSGI bundle (使用 cqblueprits/maven/eclipse)。
import javax.servlet.ServletException;
import org.apache.felix.scr.annotations.sling.SlingServlet;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
import org.apache.sling.api.servlets.SlingSafeMethodsServlet;
@SlingServlet(methods = { "GET" }, paths = { "/bin/acme/my/servlet" }, extensions = { "html" })
public class HelloWorld extends SlingSafeMethodsServlet {
private static final long serialVersionUID = 217529099388338070L;
@Override
protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException,
IOException {
response.setContentType("text/plain");
response.getOutputStream().print("Hello AbsoluteUrlServlet World!");
}
}
如果使用浏览器从浏览器发出请求,则购买
http://localhost:4502/bin/acme/my/servlet
我收到错误
No resource found
Cannot serve request to /bin/acme/my/servlet in /libs/sling/servlet/errorhandler/404.jsp
Request Progress:
0 (2014-04-18 13:53:24) TIMER_START{Request Processing}
0 (2014-04-18 13:53:24) COMMENT timer_end format is {<elapsed msec>,<timer name>} <optional message>
0 (2014-04-18 13:53:24) LOG Method=GET, PathInfo=/bin/acme/my/servlet
0 (2014-04-18 13:53:24) TIMER_START{ResourceResolution}
0 (2014-04-18 13:53:24) TIMER_END{0,ResourceResolution} URI=/bin/acme/my/servlet resolves to Resource=NonExistingResource, path=/bin/acme/my/servlet
0 (2014-04-18 13:53:24) LOG Resource Path Info: SlingRequestPathInfo: path='/bin/acme/my/servlet', selectorString='null', extension='null', suffix='null'
0 (2014-04-18 13:53:24) TIMER_START{ServletResolution}
0 (2014-04-18 13:53:24) TIMER_START{resolveServlet(NonExistingResource, path=/bin/acme/my/servlet)}
1 (2014-04-18 13:53:24) LOG {0}: no servlet found
1 (2014-04-18 13:53:24) TIMER_END{1,resolveServlet(NonExistingResource, path=/bin/acme/my/servlet)} Using servlet org.apache.sling.servlets.get.DefaultGetServlet
1 (2014-04-18 13:53:24) TIMER_END{1,ServletResolution} URI=/bin/acme/my/servlet handled by Servlet=org.apache.sling.servlets.get.DefaultGetServlet
1 (2014-04-18 13:53:24) LOG Applying Requestfilters
在CQ的错误日志中,我们可以看到
18.04.2014 14:19:53.879 *INFO* [0:0:0:0:0:0:0:1 [1397855993874] GET /apps/path/to/my/servlet HTTP/1.1] org.apache.sling.engine.impl.SlingRequestProcessorImpl service: Resource /apps/path/to/my/servlet not found
我无法在 CQ 中部署任何自定义 SlingServlet。为了使用 servlet 打包 bundle ,我使用 Eclipse/Maven/cqblueprints 组合。
请给我们一些解决问题的建议。
最佳答案
如果上面发布的代码是您的 servlet 的完整代码,那么它甚至可能由于缺少导入而无法编译。
如果所有导入都正确并且 servlet 编译正常,则检查该组件是否在 /system/console/components
下注册。在 Felix 控制台中并且处于事件状态。
由于提到的 servlet 路径是/bin/acme/my/servlet,因此您无需在脚本解析器中注册该路径,因为默认情况下会注册/bin/。但如果您使用自定义路径,例如/apps/xyz/abc,请确保您已在 Apache Sling Servlet/Script Resolver and Error Handler
中注册该路径。配置可在 /system/console/configMgr
下找到
关于servlets - 在 CQ5 中访问 Sling Servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23162360/
我很好奇 CQ API 中是否有允许我基于 cq:component 创建节点的内容。 ,就像作者将组件添加到 parsys 时会发生的情况一样。 因为我需要完成这件作品,所以我继续手动完成。我已经包
AEM 6.0 中的组件可以具有以下属性:cq:template和 cq:templatePath .在我工作时,并非总是需要两者,但我没有得到这两者之间的确切区别。 最佳答案 cq:模板 cq:te
我正在努力提高 adobe cq 中的页面性能,我看到各种网站(1、2)都提到了 channels 类型节点的 cq 属性:客户端库文件夹 我设置了一个包含 2 个组件(cmpA 和 cmpB)的小示
我需要检查资源对象对于下面的“资源”对象是否有效。例如,如果我在这种情况下传递了getResource("some path which is not available in cq")之类的网址,则
创建 cq 模板时允许的 parent 和允许的 child 属性的目的是什么? documentation中的描述简单地说“允许作为该组件父组件的组件的路径”/“允许作为该组件子组件的组件的路径”。
我正在尝试为简单的 Accordion 创建一个组件,其中内容块保存在标题下,并且一次只能看到一个标题。我的首选实现使用两个组件,一个代表整个 Accordion ,第二个组件代表单个条目。 这个想法
我知道 AEM 如何在成功验证后创建名为“登录 token ”的 cookie。 我的问题是 AEM 如何在每个请求中验证这个 cookie?是否有任何过滤器可用于拦截请求然后验证 cookie?如果
我有一个特定的节点,例如:/content/site/advisors/jcr:content 由属性“cq:allowed templates”组成,其值由多个字符串值(字符串数组)组成。我想将另一
它们是直接在终端中设置 CQ 实例运行模式的选项 即 -Dsling.run.modes=${CQ_RUNMODE} 他们也是更改端口的类似选项。 我基本上是在寻找一种解决方案来为新实例不断更改 CQ
我使用以下代码在我的模板中添加了一个 parsys 组件: 但是当我创建一个页面,并向 parsys 组件添加一些文本时,该组件仍然保留在页面上(在我添加的文本下方)。 在将一些 Ass
在处理 CQ 5.4 时,我开发了一个组件,该组件具有包含相同字段的两个选项卡的对话框,并且我正在复制代码,这使其难以维护,因此我决定将选项卡分成一个新的 .xml 并将它们包含在 cqinclude
我想编写一个 AEM 组件,我想在其中添加一些元素。在一个组件中,我想添加三个不同的选项,并且我想动态更改此选项。 实际上,我尝试将部分代码添加到我的 cq_dilog.xml,但问题是我有三个下拉选
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 6年前关闭。 Improve thi
我正在尝试过滤组件对话框中的标签。我知道我可以按 namespace 过滤它,但这仅适用于根级别。我可以更深一层地过滤标签选择吗? 例如: 等 标签 命名空间 文章类型 博客 新闻 Assets 类型
我正在尝试使用观察管理器实现事件监听器。我需要监听多个路径。 但是,我认为我们只能在一条路径上注册监听器。有没有办法可以监听多个路径? 我尝试过这样的事情 String pathvalues = "p
如果页面分配了很多标签,则加载对话框可能需要相当长的时间(最多 20 秒)。如果作者只想更改多个页面上的某些其他属性,这可能会变得相当烦人。因此问题是,有没有办法在对话框中延迟加载标签? 更准确地说,
我正在尝试使用观察管理器实现事件监听器。我需要监听多个路径。 但是,我认为我们只能在一条路径上注册监听器。有没有办法可以监听多个路径? 我尝试过这样的事情 String pathvalues = "p
我需要将当前页面路径设置为 canocical 标记。不幸的是我这里有一些错误。在此代码上: 我有这个输出: 怎么了。但是如果我像这样设置 canonical 标签: 我有这个输出: 这几乎
我们正在使用 Day CQ 邮件服务配置来发送邮件。我在我的服务实现中使用以下代码引用了配置。 @Reference private MessageGatewayService messageGate
是否可以编写一个自己的 servlet 来登录 CQ 系统并以 JSON 响应的形式返回自己的消息。 我的意思与 J_Security_Check 相同,但我可以控制消息。登录应检查凭据并为 sess
我是一名优秀的程序员,十分优秀!