javax/validation/Path GWT Java Maven对话

javax/validation/Path GWT Java Maven对话,gwt,maven-2,smartgwt,Gwt,Maven 2,Smartgwt,我在我的项目中使用GWT。最近,我尝试将GWT+Java+tomcat的手动编译转换为maven项目。我几乎能够成功地将其打包为war。但当我在tomcat上部署时,我遇到了以下错误: EVERE:调度传入RPC调用时发生异常 java.lang.NoClassDefFoundError:javax/validation/Path 位于java.lang.ClassLoader.defineClass1(本机方法) 位于java.lang.ClassLoader.defineClassCond(

我在我的项目中使用GWT。最近,我尝试将GWT+Java+tomcat的手动编译转换为maven项目。我几乎能够成功地将其打包为war。但当我在tomcat上部署时,我遇到了以下错误:

EVERE:调度传入RPC调用时发生异常 java.lang.NoClassDefFoundError:javax/validation/Path 位于java.lang.ClassLoader.defineClass1(本机方法) 位于java.lang.ClassLoader.defineClassCond(ClassLoader.java:632) 位于java.lang.ClassLoader.defineClass(ClassLoader.java:616) 位于java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) 位于org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2818) 位于org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1159) 位于org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1647) 位于org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526) 位于java.lang.Class.forName0(本机方法) 位于java.lang.Class.forName(Class.java:247) 位于com.google.gwt.user.server.rpc.SerializationPolicyLoader.loadFromStream(SerializationPolicyLoader.java:196) 位于com.google.gwt.user.server.rpc.RemoteServiceServlet.loadSerializationPolicy(RemoteServiceServlet.java:90) 位于com.google.gwt.user.server.rpc.RemoteServiceServlet.doGetSerializationPolicy(RemoteServiceServlet.java:293) 位于com.google.gwt.user.server.rpc.RemoteServiceServlet.getSerializationPolicy(RemoteServiceServlet.java:157) 位于com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.prepareToRead(ServerSerializationStreamReader.java:455)

以下是我在我的
pom.xml
中添加的内容:

<dependency>
 <groupId>com.google.gwt</groupId>
 <artifactId>gwt-servlet</artifactId>
 <version>${gwt.version}</version>
 <scope>compile</scope>
</dependency>

<dependency>
 <groupId>com.google.gwt</groupId>
 <artifactId>gwt-user</artifactId>
 <version>${gwt.version}</version>
 <scope>provided</scope>
</dependency>

com.google.gwt
gwt servlet
${gwt.version}
编译
com.google.gwt
gwt用户
${gwt.version}
假如
作为依赖项

请帮帮我

我需要添加哪些内容来解决此问题

导致问题的原因是
compile
实际上是默认范围,因此如果需要,可以从第一个依赖项中省略它

问题出现在第二个工件中,它被声明为
提供的
。这意味着应用程序希望web容器提供该库/类。看起来它没有提供所需的类,这导致了
NoClassDefFoundError

删除提供的
,将指示Maven将该库与应用程序打包,Tomcat应该能够克服该错误


由于
gwt用户
在编译时可用,因此没有编译时错误。Tomcat在运行时根本无法使用它。

是的,太好了。这很有效,现在我可以启动我的应用程序了。谢谢安迪,非常感谢。