You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by "Felix Meschberger (JIRA)" <ji...@apache.org> on 2008/08/11 09:47:47 UTC

[jira] Commented: (SLING-591) NoSuchMethodError exception in javax.script.Bindings when running on Java 5

    [ https://issues.apache.org/jira/browse/SLING-591?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12621375#action_12621375 ] 

Felix Meschberger commented on SLING-591:
-----------------------------------------

The problem is probably that you compiled the scripting/freemarker module using a JDK 6 compiler which compiles against the Java Scripting API contained in Java 6, which is written using generics. When running on Java 5, the BSF 3 Java Scripting API implementation is used, which is _not_ written using generics, because it is intended to be run on Java 1.4, also.

Two solutions come to mind:
 - Compile the module with Java 5 instead of Java 6
 - Extend the Freemarker module's <build/plugins> section as follows:

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.0-alpha-4</version>
                <executions>
                    <execution>
                        <id>get-bsf3-api</id>
                        <goals>
                            <goal>copy</goal>
                        </goals>
                        <configuration>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>org.apache.bsf</groupId>
                                    <artifactId>bsf-api</artifactId>
                                    <version>3.0-beta2</version>
                                </artifactItem>
                            </artifactItems>
                            <stripVersion>true</stripVersion>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <!-- Reported to work on Linux, Windows, Mac OSX -->
                    <compilerArgument>-Xbootclasspath/p:${project.build.directory}/dependency/bsf-api.jar</compilerArgument>
                </configuration>
            </plugin>

This ensure the compilation of the module against the BSF 3 library.

> NoSuchMethodError exception in javax.script.Bindings when running on Java 5
> ---------------------------------------------------------------------------
>
>                 Key: SLING-591
>                 URL: https://issues.apache.org/jira/browse/SLING-591
>             Project: Sling
>          Issue Type: Bug
>          Components: Scripting
>         Environment: Mac OS X 10.5/Intel64
>            Reporter: Oliver Lietz
>
> running scripting on Java 5 leads to runtime errors:
> *ERROR* [btpool0-2] org.apache.sling.scripting.freemarker.FreemarkerScriptEngine Failure running Freemarker script. java.lang.NoSuchMethodError: javax.script.Bindings.put(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
> 	at org.apache.sling.scripting.freemarker.FreemarkerScriptEngine.eval(FreemarkerScriptEngine.java:69)
> 	at org.apache.sling.scripting.core.impl.DefaultSlingScript.call(DefaultSlingScript.java:135)
> 	at org.apache.sling.scripting.core.impl.DefaultSlingScript.eval(DefaultSlingScript.java:106)
> 	at org.apache.sling.scripting.core.impl.DefaultSlingScript.service(DefaultSlingScript.java:219)
> 	at org.apache.sling.engine.impl.request.RequestData.service(RequestData.java:462)
> 	at org.apache.sling.engine.impl.SlingMainServlet.processRequest(SlingMainServlet.java:419)
> 	at org.apache.sling.engine.impl.filter.RequestSlingFilterChain.render(RequestSlingFilterChain.java:48)
> 	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:54)
> 	at org.apache.sling.engine.impl.debug.RequestProgressTrackerLogFilter.doFilter(RequestProgressTrackerLogFilter.java:59)
> 	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:52)
> 	at org.apache.sling.engine.impl.SlingMainServlet.service(SlingMainServlet.java:273)
> 	at org.apache.sling.engine.impl.SlingMainServlet.service(SlingMainServlet.java:171)
>         [...]

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.