在托管模式下运行maven gwt应用程序
我已经创建了gwt maven项目,我想从我提供的命令行运行它:在托管模式下运行maven gwt应用程序,gwt,maven,Gwt,Maven,我已经创建了gwt maven项目,我想从我提供的命令行运行它: mvn compile gwt:run -DrunTarget=com.engile.Engile/Engile.html 但在日志中显示: ava.lang.IncompatibleClassChangeError: Implementing class at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.d
mvn compile gwt:run -DrunTarget=com.engile.Engile/Engile.html
但在日志中显示:
ava.lang.IncompatibleClassChangeError: Implementing class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1847)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:890)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1354)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
at com.appops.server.data.hibernate.SessionProvider.createSessionFactory(SessionProvider.java:46)
at com.appops.server.data.hibernate.HibernateDataSourceConnector.init(HibernateDataSourceConnector.java:39)
at com.engile.server.services.ConfigurationServlet.init(ConfigurationServlet.java:45)
at com.google.inject.servlet.ServletDefinition.init(ServletDefinition.java:117)
at com.google.inject.servlet.ManagedServletPipeline.init(ManagedServletPipeline.java:82)
at com.google.inject.servlet.ManagedFilterPipeline.initPipeline(ManagedFilterPipeline.java:102)
at com.google.inject.servlet.GuiceFilter.init(GuiceFilter.java:172)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:108)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3709)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4363)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
ava.lang.CompatibleClassChangeError:实现类
位于java.lang.ClassLoader.defineClass1(本机方法)
位于java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
位于java.lang.ClassLoader.defineClass(ClassLoader.java:615)
位于java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
位于org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1847)
位于org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:890)
位于org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1354)
位于org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
位于com.appops.server.data.hibernate.SessionProvider.createSessionFactory(SessionProvider.java:46)
位于com.appops.server.data.hibernate.HibernateDataSourceConnector.init(HibernateDataSourceConnector.java:39)
位于com.engile.server.services.ConfigurationServlet.init(ConfigurationServlet.java:45)
位于com.google.inject.servlet.ServletDefinition.init(ServletDefinition.java:117)
位于com.google.inject.servlet.ManagedServletPipeline.init(ManagedServletPipeline.java:82)
位于com.google.inject.servlet.ManagedFilterPipeline.initPipeline(ManagedFilterPipeline.java:102)
位于com.google.inject.servlet.GuiceFilter.init(GuiceFilter.java:172)
位于org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275)
位于org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397)
位于org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:108)
位于org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3709)
位于org.apache.catalina.core.StandardContext.start(StandardContext.java:4363)
位于org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
位于org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
位于org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
pom.xml包括:
<properties>
<!-- Convenience property to set the GWT version -->
<gwtVersion>2.4.0</gwtVersion>
<!-- GWT needs at least java 1.5 -->
<webappDirectory>${project.build.directory}/${project.build.finalName}</webappDirectory>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.codehaus.mojo</groupId>
<artifactId>gwt-maven-plugin</artifactId>
<!-- <versionRange>[2.5.0,)</versionRange> -->
<version>${gwtVersion}</version>
<goals>
<goal>resources</goal>
<goal>compile</goal>
<goal>i18n</goal>
<goal>generateAsync</goal>
</goals>
<configuration>
<runTarget>Engile.html</runTarget>
<hostedWebapp>${project.build.directory}/${project.build.finalName} </hostedWebapp>
<modules>
<module>com.engile.Engile</module>
</modules>
<!-- <runTarget>com.engile.Engile/Engile.html</runTarget> -->
</configuration>
</pluginExecutionFilter>
<action>
<execute />
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<versionRange>[2.1.1,)</versionRange>
<goals>
<goal>exploded</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<webappDirectory>${webappDirectory}</webappDirectory>
</configuration>
</plugin>
</plugins>
</build>
2.4.0
${project.build.directory}/${project.build.finalName}
UTF-8
org.eclipse.m2e
生命周期映射
1.0.0
org.codehaus.mojo
GWTMaven插件
${gwtVersion}
资源
编译
i18n
生成同步
Engile.html
${project.build.directory}/${project.build.finalName}
com.engile.engile
org.apache.maven.plugins
maven战争插件
[2.1.1,)
爆炸了的
org.apache.maven.plugins
maven编译器插件
2.5.1
${webappDirectory}
在源代码部分的构建路径中,我提供了src/main/java的outputfolder是target/classes,默认的输出文件夹是:
带有mavenold/src/main/webapp/WEB-INF/classes的engilev2
有什么问题吗,我不理解java类编译到的webapp/classes文件夹和target/classes文件夹?您没有在构建标签中配置gwt maven插件。您只是配置maven编译器插件和生命周期映射插件。生命周期插件下的gwt maven插件仅适用于我nform eclipse以避免在刷新周期中调用gwt编译 你在另一个问题上也有同样的问题- 在maven编译器插件之后的buil标记下,在pom.xml中添加另一个插件标记
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>gwt-maven-plugin</artifactId>
<!-- <versionRange>[2.5.0,)</versionRange> -->
<version>${gwtVersion}</version>
<goals>
<goal>resources</goal>
<goal>compile</goal>
<goal>i18n</goal>
<goal>generateAsync</goal>
</goals>
<configuration>
<runTarget>Engile.html</runTarget>
<hostedWebapp>${project.build.directory}/${project.build.finalName} </hostedWebapp>
<modules>
<module>com.engile.Engile</module>
</modules>
<!-- <runTarget>com.engile.Engile/Engile.html</runTarget> -->
</configuration>
</plugin>
org.codehaus.mojo
GWTMaven插件
${gwtVersion}
资源
编译
i18n
生成同步
Engile.html
${project.build.directory}/${project.build.finalName}
com.engile.engile
这个异常只是因为jar兼容性…请在使用之前确保jar的正确版本…这解决了我的问题。。。