【问题标题】:javax/validation/Path GWT Java Maven converstionjavax/validation/Path GWT Java Maven 转换
【发布时间】:2011-12-29 07:16:52
【问题描述】:

我在我的项目中使用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>

作为依赖项。

请帮助我。

我需要添加什么来解决问题?

【问题讨论】:

    标签: gwt maven-2 smartgwt


    【解决方案1】:

    导致问题的是dependency scopecompile 实际上是默认范围,因此如果您愿意,可以从第一个依赖项中省略它。

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

    删除&lt;scope&gt;provided&lt;/scope&gt;,将指示 Maven 将该库与应用程序打包在一起,并且 Tomcat 应该能够克服该错误。

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

    【讨论】:

    • 是的,很好。这行得通。,现在我可以启动我的应用程序了。谢谢安迪,非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-30
    • 1970-01-01
    • 2015-12-26
    • 2023-01-13
    • 2015-06-29
    • 1970-01-01
    相关资源
    最近更新 更多