[
https://issues.apache.org/jira/browse/CLK-540?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Bob Schellink closed CLK-540.
-----------------------------
Resolution: Invalid
Fix Version/s: (was: 2.1.0)
Since the packages are the same my only conclusion is this is a ClassLoader
issue. What I mean by that is if a class are loaded by two different
ClassLoaders the JVM will see them as two different, incompatible classes, e.g
one cannot cast one class to the other.
In servlet containers one often find a ClassLoader hierarchy where a global
classloader is used to load classes which is global to all web applications,
and each web application also have their own separate classloader. If the
click.jar is (somehow) placed in the common lib folder it will be loaded by the
global classloader. If the click.jar is made part of the WAR, the same classes
will be loaded again by the web application class loader and the above error
can occur.
I'm no Eclipse expert but know that with Eclipse Ganymede they ship an internal
Jetty server which might be causing problems? Also Eclipse might be copying the
click.jar to the shared Jetty library folder? But I'm just guessing and might
even lead you down the wrong path :)
Anyway I'm closing this issue and I'm quite certain this is not a Click bug.
You might also want to check on the user mailing list if anyone else has run
into this issue.
bob
> ClassCastException in XmlConfigService
> --------------------------------------
>
> Key: CLK-540
> URL: https://issues.apache.org/jira/browse/CLK-540
> Project: Click
> Issue Type: Bug
> Components: core
> Affects Versions: 2.1.0
> Environment: Windows XP Professional,
> eclipse ganymede,
> jdk1.6.0,
> tried to run with jetty 6 and tomcat 6.
> Reporter: Luiz Eduardo Martins Rodrigues
> Priority: Critical
> Original Estimate: 168h
> Remaining Estimate: 168h
>
> java.lang.ClassCastException: org.apache.click.control.Table cannot be cast
> to org.apache.click.Control
> at
> org.apache.click.service.XmlConfigService.deployControls(XmlConfigService.java:1041)
> at
> org.apache.click.service.XmlConfigService.deployFiles(XmlConfigService.java:1095)
> at
> org.apache.click.service.XmlConfigService.onInit(XmlConfigService.java:226)
> at
> org.apache.click.ClickServlet.initConfigService(ClickServlet.java:1562)
> at org.apache.click.ClickServlet.init(ClickServlet.java:178)
> at
> br.ufpr.hc.infra.hibernate.HibernateClickServlet.init(HibernateClickServlet.java:27)
> at javax.servlet.GenericServlet.init(GenericServlet.java:211)
> at
> org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:433)
> at
> org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:256)
> at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> at
> org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:612)
> at org.mortbay.jetty.servlet.Context.startContext(Context.java:139)
> at
> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1216)
> at
> org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:509)
> at
> org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:447)
> at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> at
> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
> at org.mortbay.jetty.Server.doStart(Server.java:222)
> at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
> at runjettyrun.Bootstrap.main(Bootstrap.java:76)
> at the same time, I´ve created a main method inside the project with these
> lines:
> String classname = "org.apache.click.control.Table";
> Class deployClass = ClickUtils.classForName(classname);
> Control control = (Control) deployClass.newInstance();
> and it worked...
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.