If you check out http://sling.apache.org/site/jspc.html and scroll to the bottom you will see a note about deployment:
The generated JSP classes as well as the Declarative Services descriptor are automatically copied to the generated bundle jar file if the Maven Bundle Plugin (from the Apache Felix) project is used to build the project package. Paul McMahon Acquity Group ________________________________ From: sam ” <skyn...@gmail.com> To: users@sling.apache.org Sent: Friday, May 18, 2012 12:32 PM Subject: Re: jspc and java.lang.NoClassDefFoundError: org/apache/sling/commons/classloader/DynamicClassLoader <plugin> <groupId>org.apache.sling</groupId> <artifactId>maven-jspc-plugin</artifactId> <executions> <execution> <id>compile-jsp</id> <goals> <goal>jspc</goal> </goals> <configuration> <sourceDirectory>${basedir}/src/main/content/jcr_root</sourceDirectory> </configuration> </execution> </executions> <dependencies> <dependency> <groupId>org.apache.sling</groupId> <artifactId>org.apache.sling.commons.classloader</artifactId> <version>1.2.2</version> </dependency> </dependencies> </plugin> How can I put compiled jsp classes to the repository (under /var/classes)? A bunch of curl commands? There are around 1000 jsp/class files. I don't want to put jsp files but class files only to the repository. Or, I don't want to have the application compile jsp on the fly. On Wed, May 16, 2012 at 5:13 PM, sam ” <skyn...@gmail.com> wrote: > Hrm.. > I did build maven-jspc-plugin with commons.classloader as dependency with > runtime scope and compile scope, too. > And, I used that built plugin to compile my jsp files. > But both failed with the same error. > > I'll try again > > On Wed, May 16, 2012 at 4:34 PM, Felix Meschberger <fmesc...@adobe.com>wrote: > >> Hi, >> >> Hmm, this sounds like the commons.classloader should be a compile >> dependency of the jspc plugin such that on runtime the commons.classloader >> is visible to the plugin. >> >> You might try to add the commons.classloader as a dependency to the >> plugin declaration and see whether it works. If so, you might create an >> issue asking for the commons.classloader dependency to be explicitly added >> to the jspc plugin. >> >> Regards >> Felix >> >> Am 16.05.2012 um 18:03 schrieb sam ”: >> >> > I modified maven script to include >> > org.apache.sling.commons.classloader-1.2.2.jar in classpath. >> > >> > >> > exec "$JAVACMD" \ >> > $MAVEN_OPTS \ >> > -classpath >> > >> "${HOME}/.m2/repository/org/apache/sling/org.apache.sling.commons.classloader/1.2.2/org.apache.sling.commons.classloader-1.2.2.jar:${M2_HOME}/boot/classworlds-1.1.jar" >> > \ >> > "-Dclassworlds.conf=${M2_HOME}/bin/m2.conf" \ >> > "-Dmaven.home=${M2_HOME}" \ >> > ${CLASSWORLDS_LAUNCHER} $QUOTED_ARGS >> > >> > >> > >> > Then jspc works without complaining. >> > Why would jspc use >> org.apache.sling.commons.classloader.DynamicClassLoader >> > ? >> > >> > Why would DynamicClassLoader have to be added to jvm's classpath ? >> > >> > >> > >> > >> > On Wed, May 16, 2012 at 11:14 AM, sam ” <skyn...@gmail.com> wrote: >> > >> >> Hey, >> >> >> >> I am using maven-jspc-plugin 2.0.7-SNAPSHOT to compile jsp files. >> >> >> >> I get the following error. >> >> >> >> $ mvn clean compile >> >> [INFO] [clean:clean {execution: default-clean}] >> >> [INFO] [enforcer:enforce {execution: enforce-java}] >> >> [INFO] [resources:resources {execution: default-resources}] >> >> [INFO] Using 'UTF-8' encoding to copy filtered resources. >> >> [INFO] Copying 1 resource >> >> [INFO] Copying 6 resources to META-INF >> >> [INFO] Copying 2574 resources to jcr_root >> >> [INFO] [compiler:compile {execution: default-compile}] >> >> [INFO] Nothing to compile - all classes are up to date >> >> [INFO] [jspc:jspc {execution: compile-jsp}] >> >> [FATAL ERROR] org.apache.sling.maven.jspc.JspcMojo#execute() caused a >> >> linkage error (java.lang.NoClassDefFoundError) and may be out-of-date. >> >> Check the realms: >> >> [FATAL ERROR] Plugin realm = >> >> app0.child-container[org.apache.sling:maven-jspc-plugin:2.0.7-SNAPSHOT] >> >> urls[0] = >> >> >> file:/home/sam/.m2/repository/org/apache/sling/maven-jspc-plugin/2.0.7-SNAPSHOT/maven-jspc-plugin-2.0.7-SNAPSHOT.jar >> >> urls[1] = >> >> >> file:/home/sam/.m2/repository/org/apache/sling/org.apache.sling.api/2.2.2/org.apache.sling.api-2.2.2.jar >> >> urls[2] = >> >> >> file:/home/sam/.m2/repository/org/apache/sling/org.apache.sling.scripting.jsp/2.0.18/org.apache.sling.scripting.jsp-2.0.18.jar >> >> urls[3] = >> >> >> file:/home/sam/.m2/repository/org/apache/tomcat/jsp-api/6.0.14/jsp-api-6.0.14.jar >> >> urls[4] = >> >> >> file:/home/sam/.m2/repository/org/apache/tomcat/el-api/6.0.14/el-api-6.0.14.jar >> >> urls[5] = >> >> >> file:/home/sam/.m2/repository/org/apache/tomcat/servlet-api/6.0.14/servlet-api-6.0.14.jar >> >> urls[6] = >> >> >> file:/home/sam/.m2/repository/org/apache/tomcat/jasper-el/6.0.14/jasper-el-6.0.14.jar >> >> urls[7] = >> >> >> file:/home/sam/.m2/repository/org/apache/tomcat/jasper-jdt/6.0.14/jasper-jdt-6.0.14.jar >> >> urls[8] = >> >> >> file:/home/sam/.m2/repository/javax/servlet/servlet-api/2.5/servlet-api-2.5.jar >> >> urls[9] = >> >> >> file:/home/sam/.m2/repository/javax/servlet/jsp/jsp-api/2.1/jsp-api-2.1.jar >> >> urls[10] = >> >> >> file:/home/sam/.m2/repository/commons-io/commons-io/1.4/commons-io-1.4.jar >> >> urls[11] = >> >> >> file:/home/sam/.m2/repository/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar >> >> urls[12] = >> >> >> file:/home/sam/.m2/repository/org/apache/maven/maven-archiver/2.0/maven-archiver-2.0.jar >> >> urls[13] = >> >> >> file:/home/sam/.m2/repository/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.jar >> >> urls[14] = >> >> >> file:/home/sam/.m2/repository/org/codehaus/plexus/plexus-archiver/1.0-alpha-3/plexus-archiver-1.0-alpha-3.jar >> >> urls[15] = >> >> >> file:/home/sam/.m2/repository/org/slf4j/slf4j-api/1.5.2/slf4j-api-1.5.2.jar >> >> urls[16] = >> >> >> file:/home/sam/.m2/repository/org/slf4j/slf4j-simple/1.5.2/slf4j-simple-1.5.2.jar >> >> [FATAL ERROR] Container realm = plexus.core >> >> urls[0] = file:/home/sam/opt/maven/lib/maven-2.2.1-uber.jar >> >> [INFO] >> >> >> ------------------------------------------------------------------------ >> >> [ERROR] FATAL ERROR >> >> [INFO] >> >> >> ------------------------------------------------------------------------ >> >> [INFO] org/apache/sling/commons/classloader/DynamicClassLoader >> >> org.apache.sling.commons.classloader.DynamicClassLoader >> >> [INFO] >> >> >> ------------------------------------------------------------------------ >> >> [INFO] Trace >> >> java.lang.NoClassDefFoundError: >> >> org/apache/sling/commons/classloader/DynamicClassLoader >> >> at >> >> >> org.apache.sling.scripting.jsp.jasper.servlet.JspServletWrapper.loadTagFile(JspServletWrapper.java:241) >> >> at >> >> >> org.apache.sling.scripting.jsp.jasper.compiler.TagFileProcessor.loadTagFile(TagFileProcessor.java:574) >> >> at >> >> >> org.apache.sling.scripting.jsp.jasper.compiler.TagFileProcessor.access$000(TagFileProcessor.java:49) >> >> at >> >> >> org.apache.sling.scripting.jsp.jasper.compiler.TagFileProcessor$TagFileLoaderVisitor.visit(TagFileProcessor.java:625) >> >> at >> >> >> org.apache.sling.scripting.jsp.jasper.compiler.Node$CustomTag.accept(Node.java:1507) >> >> at >> >> >> org.apache.sling.scripting.jsp.jasper.compiler.Node$Nodes.visit(Node.java:2338) >> >> at >> >> >> org.apache.sling.scripting.jsp.jasper.compiler.Node$Visitor.visitBody(Node.java:2388) >> >> at >> >> >> org.apache.sling.scripting.jsp.jasper.compiler.Node$Visitor.visit(Node.java:2394) >> >> at >> >> >> org.apache.sling.scripting.jsp.jasper.compiler.Node$Root.accept(Node.java:489) >> >> at >> >> >> org.apache.sling.scripting.jsp.jasper.compiler.Node$Nodes.visit(Node.java:2338) >> >> at >> >> >> org.apache.sling.scripting.jsp.jasper.compiler.TagFileProcessor.loadTagFiles(TagFileProcessor.java:643) >> >> at >> >> >> org.apache.sling.scripting.jsp.jasper.compiler.Compiler.generateJava(Compiler.java:191) >> >> at >> >> >> org.apache.sling.scripting.jsp.jasper.compiler.Compiler.compile(Compiler.java:311) >> >> at >> org.apache.sling.maven.jspc.JspcMojo.processFile(JspcMojo.java:362) >> >> at >> >> org.apache.sling.maven.jspc.JspcMojo.executeInternal(JspcMojo.java:316) >> >> at org.apache.sling.maven.jspc.JspcMojo.execute(JspcMojo.java:228) >> >> at >> >> >> org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490) >> >> at >> >> >> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694) >> >> at >> >> >> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556) >> >> at >> >> >> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535) >> >> at >> >> >> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387) >> >> at >> >> >> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348) >> >> at >> >> >> org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180) >> >> at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328) >> >> at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138) >> >> at org.apache.maven.cli.MavenCli.main(MavenCli.java:362) >> >> at >> >> org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60) >> >> 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.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) >> >> at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) >> >> at >> >> org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430) >> >> at org.codehaus.classworlds.Launcher.main(Launcher.java:375) >> >> Caused by: java.lang.ClassNotFoundException: >> >> org.apache.sling.commons.classloader.DynamicClassLoader >> >> at java.net.URLClassLoader$1.run(URLClassLoader.java:202) >> >> at java.security.AccessController.doPrivileged(Native Method) >> >> at java.net.URLClassLoader.findClass(URLClassLoader.java:190) >> >> at java.lang.ClassLoader.loadClass(ClassLoader.java:306) >> >> at >> >> >> org.codehaus.classworlds.RealmClassLoader.loadClassDirect(RealmClassLoader.java:195) >> >> at >> >> >> org.codehaus.classworlds.DefaultClassRealm.loadClass(DefaultClassRealm.java:255) >> >> at >> >> >> org.codehaus.classworlds.DefaultClassRealm.loadClass(DefaultClassRealm.java:274) >> >> at >> >> >> org.codehaus.classworlds.RealmClassLoader.loadClass(RealmClassLoader.java:214) >> >> at java.lang.ClassLoader.loadClass(ClassLoader.java:247) >> >> ... 35 more >> >> >> >> >> >> >> >> How do you use jspc plugin? >> >> >> >> >> >> my pom.xml is >> >> <build> >> >> <plugins> >> >> <plugin> >> >> <groupId>org.apache.sling</groupId> >> >> <artifactId>maven-jspc-plugin</artifactId> >> >> <executions> >> >> <execution> >> >> <id>compile-jsp</id> >> >> <goals> >> >> <goal>jspc</goal> >> >> </goals> >> >> <configuration> >> >> >> >> <sourceDirectory>${basedir}/src/main/content/jcr_root</sourceDirectory> >> >> </configuration> >> >> </execution> >> >> </executions> >> >> </plugin> >> >> </plugins> >> >> </build> >> >> >> >> And, I get the same error even if I put this in dependencies: >> >> <dependency> >> >> <groupId>org.apache.sling</groupId> >> >> >> <artifactId>org.apache.sling.commons.classloader</artifactId> >> >> <version>1.2.2</version> >> >> </dependency> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >