Details
Description
Hi guys,
I've found an issue adding additional sevlets to my grails app when the servlet classes are stored within jar files. I've re-created this issue with both Grails 1.2.2 & 1.3.1.
It throws a ClassNotFoundException when you run-app (see snippet below). But if I place the source of the servlet in the src/java folder it works fine.
java.lang.ClassNotFoundException: uk.co.tribal.HelloWorld
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at sun.reflect.GeneratedMethodAccessor128.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:229)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:52)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
at org.grails.tomcat.ParentDelegatingClassLoader.findClass(TomcatServer.groovy:327)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1095)
To recreate extract the attached zip & run grails run-app. You should see an error similar to above. To then see this servlet working remove the jar from the lib folder and copy the servlet source from the src/java.tmp folder to the src/java folder. Following a grails run-app, this will now start successfully without error.
This appears to be an issue when the Tomcat plug-in is used, as it works find with Jetty.
Tim..
-
Hide
- ServletInJar.zip
- 20/May/10 11:03 AM
- 189 kB
- Tim
-
- ServletInJar/.../org.codehaus.groovy.eclipse.preferences.prefs 0.1 kB
- ServletInJar/application.properties 0.2 kB
- ServletInJar/grails-app/.../BootStrap.groovy 0.1 kB
- ServletInJar/.../BuildConfig.groovy 1 kB
- ServletInJar/grails-app/.../Config.groovy 3 kB
- ServletInJar/.../DataSource.groovy 0.6 kB
- ServletInJar/grails-app/.../resources.groovy 0.0 kB
- ServletInJar/.../UrlMappings.groovy 0.2 kB
- ServletInJar/.../messages.properties 3 kB
- ServletInJar/.../messages_da.properties 3 kB
- ServletInJar/.../messages_de.properties 4 kB
- ServletInJar/.../messages_es.properties 3 kB
- ServletInJar/.../messages_fr.properties 2 kB
- ServletInJar/.../messages_it.properties 2 kB
- ServletInJar/.../messages_ja.properties 2 kB
- ServletInJar/.../messages_nl.properties 3 kB
- ServletInJar/.../messages_pt_BR.properties 3 kB
- ServletInJar/.../messages_pt_PT.properties 3 kB
- ServletInJar/.../messages_ru.properties 4 kB
- ServletInJar/.../messages_th.properties 5 kB
- ServletInJar/.../messages_zh_CN.properties 2 kB
- ServletInJar/grails-app/views/error.gsp 2 kB
- ServletInJar/grails-app/views/index.gsp 3 kB
- ServletInJar/grails-app/.../layouts/main.gsp 0.7 kB
- ServletInJar/lib/helloworld.jar 0.2 kB
- ServletInJar/src/.../tribal/HelloWorld.java 0.6 kB
- ServletInJar/src/.../Controller.groovy 0.1 kB
- ServletInJar/src/.../DomainClass.groovy 0.1 kB
- ServletInJar/src/.../Filters.groovy 0.3 kB
- ServletInJar/src/.../artifacts/Script.groovy 0.2 kB