javax / проверка / путь GWT Java Maven разговор - PullRequest
5 голосов
/ 29 декабря 2011

Я использую GWT в своем проекте. Недавно я пытался преобразовать ручную компиляцию GWT + Java + tomcat в проект maven. Почти я могу успешно упаковать его в войну., Но когда я развернул на tomcat I получил ошибку:

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>

как зависимости.

Пожалуйста, помогите мне.

Что мне нужно добавить еще, чтобы решить проблему?

1 Ответ

5 голосов
/ 29 декабря 2011

Проблема связана с областью . compile на самом деле является областью действия по умолчанию, так что это может быть исключено из первой зависимости, если вы хотите.

Проблема во втором артефакте, который объявлен как provided. Это означает, что приложение ожидает, что веб-контейнер предоставит эту библиотеку / классы. Похоже, что он не предоставляет необходимые классы, что приводит к NoClassDefFoundError.

Удаление <scope>provided</scope>, даст Maven команду упаковать эту библиотеку вместе с приложением, и Tomcat сможет устранить эту ошибку.

Нет ошибок во время компиляции, поскольку gwt-user доступен во время компиляции. Он просто недоступен во время выполнения для Tomcat.

...