Hello Sling team, last days I started playing around with the latest Sling trunk. I noticed that after the big changes that happened in the last weeks, the sample application does not work anymore.
After some debugging I noticed, that the script resolving looks under different paths than the current sample app stores its scripts. So I corrected the paths according to the locations the script resolver is using. In my instance the scripts are now available at /apps/sling/SampleContent, /apps/sling/SamplePage and /apps/org/apache/sling/sample. Now the script resolver is able to find the right script, but there is still no output returned for my request. The problem is probably that during installation of the sample app the OCM mapping is not able to find the SamplePage and SampleContent classes in the bundle, as indicated by the exceptions I found in the error log (see stack trace below). 02.01.2008 12:44:54 *WARN * System Bundle: org/apache/sling/sample/SamplePage.class (org.apache.felix.moduleloader.ResourceNotFoundException: org/apache/sling/sample/SamplePage.class) org.apache.felix.moduleloader.ResourceNotFoundException: org/apache/sling/sample/SamplePage.class at org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClassOrResource(R4SearchPolicyCore.java:426) at org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findResource(R4SearchPolicyCore.java:206) at org.apache.felix.framework.searchpolicy.R4SearchPolicy.findResource(R4SearchPolicy.java:51) at org.apache.felix.moduleloader.ModuleImpl.getResource(ModuleImpl.java:168) at org.apache.felix.framework.Felix.getBundleResource(Felix.java:1334) at org.apache.felix.framework.BundleImpl.getResource(BundleImpl.java:170) at org.apache.sling.jcr.resource.internal.mapping.classloader.BundleLoader.loadClass(BundleLoader.java:43) at org.apache.sling.jcr.resource.internal.mapping.classloader.MapperClassLoader.loadClass(MapperClassLoader.java:121) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:247) at org.apache.jackrabbit.ocm.reflection.ReflectionUtils.forName(ReflectionUtils.java:162) at org.apache.jackrabbit.ocm.mapper.model.ClassDescriptor.validateClassName(ClassDescriptor.java:395) at org.apache.jackrabbit.ocm.mapper.model.ClassDescriptor.afterPropertiesSet(ClassDescriptor.java:387) at org.apache.sling.jcr.resource.internal.mapping.ClassDescriptorReader.validateDescriptors(ClassDescriptorReader.java:515) at org.apache.sling.jcr.resource.internal.mapping.ClassDescriptorReader.validateDescriptors(ClassDescriptorReader.java:517) at org.apache.sling.jcr.resource.internal.mapping.ClassDescriptorReader.verify(ClassDescriptorReader.java:430) at org.apache.sling.jcr.resource.internal.mapping.ClassDescriptorReader.getMappingDescriptor(ClassDescriptorReader.java:87) at org.apache.sling.jcr.resource.internal.mapping.ObjectContentManagerFactory.loadMappings(ObjectContentManagerFactory.java:230) at org.apache.sling.jcr.resource.internal.mapping.ObjectContentManagerFactory.addBundle(ObjectContentManagerFactory.java:171) at org.apache.sling.jcr.resource.internal.mapping.ObjectContentManagerFactory.registerMapperClient(ObjectContentManagerFactory.java:147) at org.apache.sling.jcr.resource.internal.JcrResourceResolverFactoryImpl.activate(JcrResourceResolverFactoryImpl.java:396) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.felix.scr.impl.ImmediateComponentManager.createImplementationObject(ImmediateComponentManager.java:228) at org.apache.felix.scr.impl.ImmediateComponentManager.createComponent(ImmediateComponentManager.java:134) at org.apache.felix.scr.impl.AbstractComponentManager.activateInternal(AbstractComponentManager.java:412) at org.apache.felix.scr.impl.AbstractComponentManager.access$100(AbstractComponentManager.java:45) at org.apache.felix.scr.impl.AbstractComponentManager$2.run(AbstractComponentManager.java:121) at org.apache.felix.scr.impl.ComponentActorThread.run(ComponentActorThread.java:85) 02.01.2008 12:44:54 *WARN * System Bundle: org/apache/sling/sample/SamplePage.class (org.apache.felix.moduleloader.ResourceNotFoundException: org/apache/sling/sample/SamplePage.class) org.apache.felix.moduleloader.ResourceNotFoundException: org/apache/sling/sample/SamplePage.class at org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClassOrResource(R4SearchPolicyCore.java:426) at org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findResource(R4SearchPolicyCore.java:206) at org.apache.felix.framework.searchpolicy.R4SearchPolicy.findResource(R4SearchPolicy.java:51) at org.apache.felix.moduleloader.ModuleImpl.getResource(ModuleImpl.java:168) at org.apache.felix.framework.Felix.getBundleResource(Felix.java:1334) at org.apache.felix.framework.BundleImpl.getResource(BundleImpl.java:170) at org.apache.sling.jcr.resource.internal.mapping.classloader.BundleLoader.loadClass(BundleLoader.java:43) at org.apache.sling.jcr.resource.internal.mapping.classloader.MapperClassLoader.loadClass(MapperClassLoader.java:121) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:247) at org.apache.jackrabbit.ocm.reflection.ReflectionUtils.forName(ReflectionUtils.java:162) at org.apache.jackrabbit.ocm.mapper.model.ClassDescriptor.validateClassName(ClassDescriptor.java:395) at org.apache.jackrabbit.ocm.mapper.model.ClassDescriptor.afterPropertiesSet(ClassDescriptor.java:387) at org.apache.sling.jcr.resource.internal.mapping.ClassDescriptorReader.validateDescriptors(ClassDescriptorReader.java:515) at org.apache.sling.jcr.resource.internal.mapping.ClassDescriptorReader.validateDescriptors(ClassDescriptorReader.java:517) at org.apache.sling.jcr.resource.internal.mapping.ClassDescriptorReader.verify(ClassDescriptorReader.java:430) at org.apache.sling.jcr.resource.internal.mapping.ClassDescriptorReader.getMappingDescriptor(ClassDescriptorReader.java:87) at org.apache.sling.jcr.resource.internal.mapping.ObjectContentManagerFactory.loadMappings(ObjectContentManagerFactory.java:230) at org.apache.sling.jcr.resource.internal.mapping.ObjectContentManagerFactory.addBundle(ObjectContentManagerFactory.java:171) at org.apache.sling.jcr.resource.internal.mapping.ObjectContentManagerFactory.registerMapperClient(ObjectContentManagerFactory.java:147) at org.apache.sling.jcr.resource.internal.JcrResourceResolverFactoryImpl.activate(JcrResourceResolverFactoryImpl.java:396) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.felix.scr.impl.ImmediateComponentManager.createImplementationObject(ImmediateComponentManager.java:228) at org.apache.felix.scr.impl.ImmediateComponentManager.createComponent(ImmediateComponentManager.java:134) at org.apache.felix.scr.impl.AbstractComponentManager.activateInternal(AbstractComponentManager.java:412) at org.apache.felix.scr.impl.AbstractComponentManager.access$100(AbstractComponentManager.java:45) at org.apache.felix.scr.impl.AbstractComponentManager$2.run(AbstractComponentManager.java:121) at org.apache.felix.scr.impl.ComponentActorThread.run(ComponentActorThread.java:85) This exception probably leads to the problem that the script can not be compiled as indicated by the next exception that occured when I try to access the page at http://localhost:8080/sample/home/moreinfojsp/content.html: 02.01.2008 12:41:16 *WARN * System Bundle: *** Class 'org.apache.jsp.apps.org.apache.sling.sample.html_jsp' was not found. Bundle 28 does not import package 'org.apache.jsp.apps.org.apache.sling.sample', nor is the package exported by any other bundle or available from the system class loader. *** (java.lang.ClassNotFoundException: *** Class 'org.apache.jsp.apps.org.apache.sling.sample.html_jsp' was not found. Bundle 28 does not import package 'org.apache.jsp.apps.org.apache.sling.sample', nor is the package exported by any other bundle or available from the system class loader. ***) java.lang.ClassNotFoundException: *** Class 'org.apache.jsp.apps.org.apache.sling.sample.html_jsp' was not found. Bundle 28 does not import package 'org.apache.jsp.apps.org.apache.sling.sample', nor is the package exported by any other bundle or available from the system class loader. *** at org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClass(R4SearchPolicyCore.java:194) at org.apache.felix.framework.searchpolicy.R4SearchPolicy.findClass(R4SearchPolicy.java:45) at org.apache.felix.moduleloader.ModuleImpl.getClass(ModuleImpl.java:152) at org.apache.felix.framework.Felix.loadBundleClass(Felix.java:1454) at org.apache.felix.framework.BundleImpl.loadClass(BundleImpl.java:341) at org.apache.sling.jcr.classloader.internal.BundleProxyClassLoader.findClass(BundleProxyClassLoader.java:61) at org.apache.sling.jcr.classloader.internal.BundleProxyClassLoader.loadClass(BundleProxyClassLoader.java:69) at java.lang.ClassLoader.loadClass(ClassLoader.java:299) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at org.apache.sling.jcr.classloader.internal.RepositoryClassLoaderFacade.loadClass(RepositoryClassLoaderFacade.java:105) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at org.apache.sling.scripting.jsp.jasper.JspCompilationContext.load(JspCompilationContext.java:644) at org.apache.sling.scripting.jsp.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:144) at org.apache.sling.scripting.jsp.jasper.servlet.JspServletWrapper.getDependants(JspServletWrapper.java:263) at org.apache.sling.scripting.jsp.jasper.compiler.Compiler.isOutDated(Compiler.java:417) at org.apache.sling.scripting.jsp.jasper.compiler.Compiler.isOutDated(Compiler.java:343) at org.apache.sling.scripting.jsp.jasper.JspCompilationContext.compile(JspCompilationContext.java:608) at org.apache.sling.scripting.jsp.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317) at org.apache.sling.scripting.jsp.JspServletWrapperAdapter.service(JspServletWrapperAdapter.java:49) at org.apache.sling.scripting.jsp.JspScriptEngineFactory.callJsp(JspScriptEngineFactory.java:126) at org.apache.sling.scripting.jsp.JspScriptEngineFactory.access$000(JspScriptEngineFactory.java:71) at org.apache.sling.scripting.jsp.JspScriptEngineFactory$JspScriptEngine.eval(JspScriptEngineFactory.java:268) at org.apache.sling.scripting.resolver.impl.DefaultSlingScript.eval(DefaultSlingScript.java:85) at org.apache.sling.servlet.resolver.helper.SlingScriptServlet.service(SlingScriptServlet.java:72) at org.apache.sling.core.impl.request.RequestData.service(RequestData.java:417) at org.apache.sling.core.impl.SlingMainServlet.processRequest(SlingMainServlet.java:286) at org.apache.sling.core.impl.filter.RequestSlingFilterChain.render(RequestSlingFilterChain.java:48) at org.apache.sling.core.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:54) at org.apache.sling.core.impl.filter.ThemeResolverFilter.doFilter(ThemeResolverFilter.java:76) at org.apache.sling.core.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:52) at org.apache.sling.core.impl.filter.LocaleResolverFilter.doFilter(LocaleResolverFilter.java:85) at org.apache.sling.core.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:52) at org.apache.sling.core.impl.log.RequestLoggerFilter.doFilter(RequestLoggerFilter.java:206) at org.apache.sling.core.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:52) at org.apache.sling.core.impl.SlingMainServlet.service(SlingMainServlet.java:186) at org.apache.sling.core.impl.SlingMainServlet.service(SlingMainServlet.java:158) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:358) at org.mortbay.jetty.servlet.OsgiServletHolder.handle(OsgiServletHolder.java:93) at org.mortbay.jetty.servlet.ServletHandler.dispatch(ServletHandler.java:657) at org.mortbay.jetty.servlet.OsgiServletHandler.dispatch(OsgiServletHandler.java:69) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:567) at org.mortbay.http.HttpContext.handle(HttpContext.java:1807) at org.mortbay.http.HttpContext.handle(HttpContext.java:1757) at org.mortbay.http.HttpServer.service(HttpServer.java:879) at org.mortbay.http.HttpConnection.service(HttpConnection.java:789) at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:960) at org.mortbay.http.HttpConnection.handle(HttpConnection.java:806) at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:218) at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:331) at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:520) Caused by: java.lang.ClassNotFoundException: org.apache.jsp.apps.org.apache.sling.sample.html_jsp at org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClassOrResource(R4SearchPolicyCore.java:422) at org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClass(R4SearchPolicyCore.java:185) ... 49 common frames omitted Regards, Alex