0

我想在基于 CQ5 5.4 版的项目中进行一些更改。

有一个表单提交到位置“/bin/submitApplication”,我无法找到 Servlet 类。我在 CRX-DE Lite 中搜索过,没有结果。

另外,如果我转到 URL http://vic.netpace.com/bin/submitApplication它给了我以下打印类名的异常,但我无法在 CRX-DE 中的任何位置找到该类

The requested URL /bin/submitApplication resulted in an error in com.netpace.vic.servlet.ApplicationServlet.

Request Progress:

      0 (2016-08-09 14:24:08) TIMER_START{Request Processing}
      0 (2016-08-09 14:24:08) COMMENT timer_end format is {<elapsed msec>,<timer name>} <optional message>
      0 (2016-08-09 14:24:08) LOG Method=GET, PathInfo=/bin/submitApplication
      0 (2016-08-09 14:24:08) TIMER_START{ResourceResolution}
      0 (2016-08-09 14:24:08) TIMER_END{0,ResourceResolution} URI=/bin/submitApplication resolves to Resource=ServletResource, servlet=com.netpace.vic.servlet.ApplicationServlet, path=/bin/submitApplication
      0 (2016-08-09 14:24:08) LOG Resource Path Info: SlingRequestPathInfo: path='/bin/submitApplication', selectorString='null', extension='null', suffix='null'
      0 (2016-08-09 14:24:08) TIMER_START{ServletResolution}
      0 (2016-08-09 14:24:08) TIMER_START{resolveServlet(ServletResource, servlet=com.netpace.vic.servlet.ApplicationServlet, path=/bin/submitApplication)}
      0 (2016-08-09 14:24:08) TIMER_END{0,resolveServlet(ServletResource, servlet=com.netpace.vic.servlet.ApplicationServlet, path=/bin/submitApplication)} Using servlet com.netpace.vic.servlet.ApplicationServlet
      0 (2016-08-09 14:24:08) TIMER_END{0,ServletResolution} URI=/bin/submitApplication handled by Servlet=com.netpace.vic.servlet.ApplicationServlet
      0 (2016-08-09 14:24:08) LOG Applying Requestfilters
      0 (2016-08-09 14:24:08) LOG Calling filter: org.apache.sling.bgservlets.impl.BackgroundServletStarterFilter
      0 (2016-08-09 14:24:08) LOG Calling filter: org.apache.sling.security.impl.ReferrerFilter
      0 (2016-08-09 14:24:08) LOG Calling filter: org.apache.sling.portal.container.internal.request.PortalFilter
      0 (2016-08-09 14:24:08) LOG Calling filter: org.apache.sling.rewriter.impl.RewriterFilter
      0 (2016-08-09 14:24:08) LOG Calling filter: com.day.cq.wcm.core.impl.WCMRequestFilter
      0 (2016-08-09 14:24:08) LOG Calling filter: org.apache.sling.i18n.impl.I18NFilter
      0 (2016-08-09 14:24:08) LOG Calling filter: com.netpace.vic.impl.filters.LoggingFilter
      0 (2016-08-09 14:24:08) LOG Calling filter: com.day.cq.theme.impl.ThemeResolverFilter
      0 (2016-08-09 14:24:08) LOG Calling filter: com.day.cq.wcm.foundation.forms.impl.FormsHandlingServlet
      0 (2016-08-09 14:24:08) LOG Calling filter: org.apache.sling.engine.impl.debug.RequestProgressTrackerLogFilter
      0 (2016-08-09 14:24:08) LOG Calling filter: com.day.cq.wcm.mobile.core.impl.redirect.RedirectFilter
      1 (2016-08-09 14:24:08) LOG RedirectFilter did not redirect (MobileUtil.isMobileResource() returns false)
      1 (2016-08-09 14:24:08) LOG Applying Componentfilters
      1 (2016-08-09 14:24:08) LOG Calling filter: com.day.cq.wcm.core.impl.WCMComponentFilter
      1 (2016-08-09 14:24:08) LOG Calling filter: com.day.cq.wcm.core.impl.WCMDebugFilter
      1 (2016-08-09 14:24:08) TIMER_START{com.netpace.vic.servlet.ApplicationServlet#0}
      1 (2016-08-09 14:24:08) TIMER_START{handleError:status=405}
      4 (2016-08-09 14:24:08) TIMER_END{3,handleError:status=405} Using handler org.apache.sling.servlets.resolver.internal.defaults.DefaultErrorHandlerServlet
      4 (2016-08-09 14:24:08) TIMER_END{4,Request Processing} Dumping SlingRequestProgressTracker Entries
4

1 回答 1

1

转到http://<your server>:<port>/system/console/components并搜索您的类com.netpace.vic.servlet.ApplicationServlet,每个 servlet 都注册为 OSGI 组件,因此您将在组件控制台中找到您的 servlet。

展开组件列表以查看详细信息,从那里您将获得该 servlet 所在的包名称。复制该捆绑包名称或记下捆绑包 ID。

现在转到/system/console/bundles并使用您从组件控制台复制的名称或 id 查找捆绑包。您将能够找到捆绑包,展开捆绑包列表以查看其详细信息。在这些详细信息中,它还将指定捆绑包的安装/定位位置。

您可以在 CRXDE 中转到该位置,现在有两种可能性 -

  1. 你会在 CRXDE 中找到一个 src 文件夹,里面应该有你正在寻找的代码。
  2. 或者您将知道携带您的 servlet 的 JAR 的名称。您可以去检查您的代码存储库/项目以获取 servlet 的 java 代码

另请注意,您的 servlet 似乎是一个表单 POST servlet,因此当您尝试通过 URL - http://vic.netpace.com/bin/submitApplication访问它时,您尝试对其发起 GET 请求,这可能不受支持由 servlet。

于 2016-08-09T23:04:53.163 回答