javax/validation/Path GWT Java Maven转换

Bal*_*laB 5 gwt maven-2 smartgwt

我在我的项目中使用GWT.最近我尝试将GWT + Java + tomcat的手动编译转换为maven项目.几乎我能够将它成功打包到战争中.,当我在tomcat上部署时我遇到了跟​​随错误:

EVERE:在java.lang上的java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)的java.lang.ClassLoader.defineClass1(本机方法)中调度传入的RPC调用java.lang.NoClassDefFoundError:javax/validation/Path时发生异常位于org.apache的org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2818)的java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)中的.ClassLoader.defineClass(ClassLoader.java:616). 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)at java.lang.Class.forName0(Native Method)at java.lang.Class.forName(Class.java:247)at com.google.gwt.user.server.rpc.SerializationPolicyLoader.loadFromStream(SerializationPolicyLoader.java: 196)在com.google.gwt.user.server.rpc.RemoteServiceServlet.loadSerializationPolicy(RemoteServi)ceServlet.java:90)com.google.gwt.user.rp..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>
Run Code Online (Sandbox Code Playgroud)

作为依赖.

请帮助我.

我需要添加更多来解决问题?

and*_*dyb 5

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

问题在于第二个工件被声明为provided.这意味着应用程序期望Web容器提供该库/类.看起来它没有提供所需的类,这导致了NoClassDefFoundError.

删除<scope>provided</scope>,将指示Maven将该库与应用程序打包,Tomcat应该能够通过该错误.

由于gwt-user在编译时可用,因此没有编译时错误.它在Tomcat的运行时根本不可用.