Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Servlets 在CQ5中访问Sling Servlet_Servlets_Aem_Sling - Fatal编程技术网

Servlets 在CQ5中访问Sling Servlet

Servlets 在CQ5中访问Sling Servlet,servlets,aem,sling,Servlets,Aem,Sling,我们在CQ5中创建了一个简单的Slingservlet作为OSGI包(使用cqblueprits/maven/eclipse) 使用浏览器从浏览器发出购买请求 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 Requ

我们在CQ5中创建了一个简单的Slingservlet作为OSGI包(使用cqblueprits/maven/eclipse)

使用浏览器从浏览器发出购买请求

    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部署任何自定义SlingServlet。为了用servlet封装包,我使用Eclipse/Maven/cqblueprints组合


请给我们一些解决问题的建议。

您为servlet定义了
html
扩展:

@SlingServlet(
  methods = { "GET" },
  paths = { "/bin/acme/my/servlet" },
  extensions = { "html" })  // <- here

如果上面发布的代码是servlet的全部代码,那么由于缺少导入,它甚至可能无法编译

如果所有导入都正确且servlet编译良好,则检查组件是否在Felix控制台中的
/system/console/components
下注册,并且是否处于活动状态


因为提到的servlet路径是/bin/acme/my/servlet,所以您不需要在脚本解析器中注册路径,因为默认情况下/bin/会被注册。但是,如果您使用的是自定义路径,例如/apps/xyz/abc,那么请确保您已经在
Apache Sling Servlet/Script解析器和错误处理程序
配置中注册了该路径,该配置位于
/system/console/configMgr

下,我不这么认为。如果设置了paths属性,则将忽略扩展。
    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
@SlingServlet(
  methods = { "GET" },
  paths = { "/bin/acme/my/servlet" },
  extensions = { "html" })  // <- here
http://localhost:4502/bin/acme/my/servlet.html