simplicityitself / grails-gwt

New Grails GWT Plugin
Other
23 stars 18 forks source link

Generated War file can't be deployed: gwt-dev included #52

Open ibonUrrutia opened 10 years ago

ibonUrrutia commented 10 years ago

Grails version = 2.3.5 Grails GWT Plugin version = 1.0 GWT version = 2.5.1 Apache Tomcat version = 7.0.39

I made a Grails-GWT application with three modules and this configuration in BuildConfig.groovy:

plugins{
...
//For GWT
    build ":extended-dependency-manager:0.5.5"
    compile ":gwt:1.0",{
      transitive=false    
    }
}
...
gwt {
  version="2.5.1"
  gin.version="1.5.0"
}

I didn't have any problem while developing it (using grails run-app works perfectly). But, after generating a war with :

> grails war
| Environment set to production.....
Dependency Manager - Ivy
Checking GWT home version[2.5.1] buildconfig[null] sysprop[null] antprop[null]
Gwt version 2.5.1 requested, downloading required dependencies
| Packaging Grails application
COMPILE START
Added Google Gin 1.5.0 to GWT environment
| Packaging Grails application..
Adding json-20090211.jar to classpath
Adding gwt-user-2.5.1.jar to classpath
Adding validation-api-1.0.0.GA-sources.jar to classpath
Adding json-20090211.jar to classpath
Adding gwt-servlet-2.5.1.jar to classpath
Adding gwt-codeserver-2.5.1.jar to classpath
Adding json-20090211.jar to classpath
Adding json-20090211.jar to classpath
Adding validation-api-1.0.0.GA.jar to classpath
Adding validation-api-1.0.0.GA.jar to classpath
Adding gin-1.5.0.jar to classpath
Adding guice-3.0-rc2.jar to classpath
Adding guice-assistedinject-3.0-rc2.jar to classpath
Adding javax.inject-1.jar to classpath
Adding aopalliance-1.0.jar to classpath
Adding cglib-2.2.1-v20090111.jar to classpath
Adding asm-3.1.jar to classpath
Adding guice-3.0.jar to classpath
Adding javax.inject-1.jar to classpath
Adding aopalliance-1.0.jar to classpath
Adding cglib-2.2.1-v20090111.jar to classpath
Adding asm-3.1.jar to classpath
Adding guice-assistedinject-3.0.jar to classpath
Adding guice-3.0.jar to classpath
Adding javax.inject-1.jar to classpath
Adding aopalliance-1.0.jar to classpath
Adding cglib-2.2.1-v20090111.jar to classpath
Adding asm-3.1.jar to classpath
Adding javax.inject-1.jar to classpath
Adding aopalliance-1.0.jar to classpath
| Compiling 30 source files

| Compiling 30 source files..
Added Google Gin 1.5.0 to GWT environment
| Compiling 30 source files.....
09:41:02.568 [main] WARN  g.plugin.webxml.WebxmlGrailsPlugin - Did not find application config file: WebXmlConfig
09:41:04.137 [main] WARN  g.plugin.webxml.WebxmlGrailsPlugin - Did not find application config file: WebXmlConfig
Added Google Gin 1.5.0 to GWT environment
| Compiling GWT modules
Auto configuring to use all of the 2 available hardware threads
Using GWT JS Style OBF
Will compile 3 modules
Selected GWT Worker parallel compilation with 2 worker threads
  ...
Compilation run completed in 136.977 seconds

I tried to deploy it in Tomcat, and the gwt plugin can't be loaded:

Mar 12, 2014 9:45:02 AM org.apache.catalina.loader.WebappClassLoader validateJarFile
INFO: validateJarFile(/opt/apache-tomcat-7.0.39/webapps/app-launcher/WEB-INF/lib/gwt-dev-2.5.1.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
...
09:45:12.530 [localhost-startStop-1] WARN  o.c.g.g.p.DefaultGrailsPluginManager - WARNING: Plugin [gwt] cannot be loaded because its dependencies [{extendedDependencyManager}] cannot be resolved

Looking at the generated war file it includes in WEB-INF/lib this three jars:

gwt-codeserver-2.5.1.jar
gwt-dev-2.5.1.jar
gwt-servlet-2.5.1.jar

I thought that you only need gwt-servlet for deploying a GWT application. Looking at the Ivy dependencies, gwt-dev is included because gwt-codeserver depends on it. Am I wrong? Why is included gwt-codeserver? Is this a bug?

NOTE: I tried many times cleaning and refreshing dependencies so I don't think that is a problem of my environment. I'm pretty sure that the GWT plugin is adding those jars when calling grails war.

Thanks in advance.

oniseijin commented 9 years ago

In the 1.0.3 version deployed just last week, I can see only gwt-servlet, and not the codeserver being deployed, so I don't think it is the plugin doing this. Could it be that you added these as runtime dependencies elsewhere in your BuildConfig.groovy?