function detail page

"laurent.druart via opencms-dev" <[email protected]>
Newsgroups gmane.comp.cms.opencms.devel
Message-ID <[email protected]>
Hello,

I’ve an issue with function detail page in OpenCMS 21.

I’ve a dynamic function rendering a list of dynamic content from a db. On each row I’ve a link to a function detail page like this:

<a href="${cms.functionDetail['raceDetail']}?idRace=${race.nrRace}">

I created a second dynamic function, the function associated with the function detail page. Let’s name this function raceDetail

To hide this function in the wizard in put property search.exclude to all

In .config of my module I added a « named function » named raceDetail  and in « Function » the path to the xml configuration of the function

I added on my page template a property container.info <http://container.info/> with value functionDetail=maincontainer

maincontainer is the main container in my template.

In app Sitemap I tried to drag and drop the detail page « raceDetail function detail page » in my « technical » folder detail_pages and I got the error you can find bellow


Function detail container not found for "/sites/mysite/.content/.templates/blank.html".

Ticket Id: 1786458784909
org.opencms.main.CmsException: Function detail container not found for "/sites/mysite/.content/.templates/blank.html".
org.opencms.ade.sitemap.CmsVfsSitemapService.createNewEntry(CmsVfsSitemapService.java:2003)
org.opencms.ade.sitemap.CmsVfsSitemapService.applyChange(CmsVfsSitemapService.java:1479)
org.opencms.ade.sitemap.CmsVfsSitemapService.saveInternal(CmsVfsSitemapService.java:1373)
org.opencms.ade.sitemap.CmsVfsSitemapService.save(CmsVfsSitemapService.java:1154)
jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
java.lang.reflect.Method.invoke(Method.java:580)
com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:587)
com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:349)
com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:319)
com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:389)
com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
javax.servlet.http.HttpServlet.service(HttpServlet.java:555)
javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
org.opencms.gwt.CmsGwtService.service(CmsGwtService.java:215)
org.opencms.main.OpenCmsCore.invokeGwtService(OpenCmsCore.java:2238)
org.opencms.main.OpenCmsServlet.doGet(OpenCmsServlet.java:360)
org.opencms.main.OpenCmsServlet.doPost(OpenCmsServlet.java:381)
javax.servlet.http.HttpServlet.service(HttpServlet.java:555)
javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:197)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
org.opencms.jsp.jsonpart.CmsJsonPartFilter.doFilter(CmsJsonPartFilter.java:298)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
org.apache.logging.log4j.web.Log4jServletFilter.doFilter(Log4jServletFilter.java:63)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:619)
org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:399)
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:338)
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:283)
org.opencms.main.OpenCmsUrlServletFilter.doFilter(OpenCmsUrlServletFilter.java:145)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
org.apache.logging.log4j.web.Log4jServletFilter.doFilter(Log4jServletFilter.java:70)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:142)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:166)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:88)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:491)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:83)
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:764)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:72)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344)
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:398)
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:1309)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1854)
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:973)
org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:491)
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
java.lang.Thread.run(Thread.java:1583)

I found a workaround:
drag and drop of a normal page in my detail_pages folder
in sitemap config in tab « detail pages » add a detail page for type function@raceDetail associated to the new page in detail_pages folder
remove search.exclude=all from the detail function
drag and drop of this function  to the new page in detail_pages folder
add search.exclude=all to the detail function

It works but is it the best way to achieve it?

Thanks for your help

Best regards,

Laurent

_______________________________________________
This mail is sent to you from the opencms-dev mailing list
To change your list options, or to unsubscribe from the list, please visit
https://lists.opencms.org/mailman/listinfo/opencms-dev
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.