Hi, Am 18.05.2012 um 18:32 schrieb sam ”:
> <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> Great to hear, it worked. > > > 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. You might want to place them in the bundle as initial content to deploy on bundle installation [1]. Or you might expose them as Bundle-provided resources (see [2]). I would probably prefer the latter option. Regards Felix [1] http://sling.apache.org/site/content-loading-jcrcontentloader.html [2] http://sling.apache.org/site/bundle-resources-extensionsbundleresource.html > > > 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> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>> >>> >>