[
https://issues.apache.org/jira/browse/CAMEL-7925?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14235402#comment-14235402
]
Charles Moulliard commented on CAMEL-7925:
------------------------------------------
You will solve a part of the problem if you restrict the packages to be
imported (as you propose). But as Groovy will generate class dynamically under
the name script123456789, they will not be loaded and a classloading exception
will take place for these classes. This is why until now, the trick to import
dynamically everything. For sure, this is not a good thing as it breaks the
OSGI modularity.
> groovy and osgi - Could not initialize class script1413536396719697720774
> -------------------------------------------------------------------------
>
> Key: CAMEL-7925
> URL: https://issues.apache.org/jira/browse/CAMEL-7925
> Project: Camel
> Issue Type: Bug
> Components: camel-groovy
> Environment: Apache Karaf 2.2.x
> Reporter: Charles Moulliard
> Assignee: Charles Moulliard
> Priority: Minor
>
> When a camel route is deployed on apache Karaf using a groovy expression to
> be evaluated we get this error
> https://gist.github.com/cmoulliard/7294122c47e9c18df399
> Route
> {code}
> from("direct:launch").routeId("request-token")
>
> .onException(HttpOperationFailedException.class)
> .handled(true)
> .log("An error occurred")
> .to("direct:interface-status")
> .end()
>
> .setHeader(Exchange.HTTP_URI, constant(wayneUriGetSession))
> .setHeader(Exchange.HTTP_QUERY, constant("User=" + UserName +
> "&" + "Pass=" + Password))
> .setHeader(Exchange.HTTP_METHOD, constant("GET"))
>
> .to("https4://token-service")
> .convertBodyTo(String.class)
> .setHeader("token").groovy("body.replaceAll('\"','')")
> {code}
> {code}
> Caused by: java.lang.NoClassDefFoundError: Could not initialize class
> script1413536396719697720774
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
> Method)[:1.7.0_51]
> at
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)[:1.7.0_51]
> at
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)[:1.7.0_51]
> at
> java.lang.reflect.Constructor.newInstance(Constructor.java:526)[:1.7.0_51]
> at java.lang.Class.newInstance(Class.java:374)[:1.7.0_51]
> at
> org.apache.camel.language.groovy.GroovyExpression.instantiateScript(GroovyExpression.java:71)
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)