javax / validation / Path GET Java Maven转换

时间:2011-12-29 07:16:53

标签: gwt maven-2 smartgwt

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

  

EVERE:调度传入的RPC调用时发生异常       java.lang.NoClassDefFoundError:javax / validation / Path           at java.lang.ClassLoader.defineClass1(Native Method)           at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)           at java.lang.ClassLoader.defineClass(ClassLoader.java:616)           at 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)           at java.lang.Class.forName0(Native Method)           at 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>

作为依赖。

请帮帮我。

我需要添加更多内容才能解决问题?

1 个答案:

答案 0 :(得分:5)

造成问题的是dependency scopecompile实际上是默认范围,因此如果需要,可以从第一个依赖项中省略。

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

删除<scope>provided</scope>,将指示Maven将该库与应用程序打包在一起,Tomcat应该能够解决该错误。

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