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 ” <[email protected]> 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 <[email protected]>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 ” <[email protected]> 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>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>
>>>
>>