#java #google-app-engine #maven #gwt #errai
# #java #google-app-engine #maven #gwt #ошибка
Вопрос:
Когда я проверил свои журналы GAE из консоли Google, я вижу ошибку ниже. Однако мое приложение работает в режиме поиска в режиме разработки GWT, а также при развертывании на локальном хостинге, поэтому мне любопытно, в чем проблема, которая вызывает это:
Uncaught exception from servlet java.lang.NoClassDefFoundError: Could not initialize class org.jboss.errai.jaxrs.ErraiProvider
at com.google.appengine.runtime.Request.process-0c118cfa1dca4123(Request.java)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:33) at org.jboss.resteasy.core.ConstructorInjectorImpl.construct(ConstructorInjectorImpl.java:132)
at org.jboss.resteasy.spi.ResteasyProviderFactory.createProviderInstance(ResteasyProviderFactory.java:1801)
at org.jboss.resteasy.spi.ResteasyProviderFactory.addMessageBodyReader(ResteasyProviderFactory.java:681)
at org.jboss.resteasy.spi.ResteasyProviderFactory.registerProvider(ResteasyProviderFactory.java:1128)
at org.jboss.resteasy.spi.ResteasyProviderFactory.registerProvider(ResteasyProviderFactory.java:1085)
at org.jboss.resteasy.spi.ResteasyProviderFactory.registerProvider(ResteasyProviderFactory.java:1029)
at org.jboss.resteasy.spi.ResteasyDeployment.registerProvider(ResteasyDeployment.java:508)
at org.jboss.resteasy.spi.ResteasyDeployment.registration(ResteasyDeployment.java:316)
at org.jboss.resteasy.spi.ResteasyDeployment.start(ResteasyDeployment.java:226)
at org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap.contextInitialized(ResteasyBootstrap.java:28) at
Моя конфигурация здесь: https://community.jboss.org/thread/232585
И pom.xml имейте это:
<dependency>
<groupId>org.jboss.errai</groupId>
<artifactId>errai-jaxrs-provider</artifactId>
<version>${version.errai}</version>
</dependency>
Ответ №1:
Вы получаете эту ошибку, потому что вы не включили требуемый jar в свою /war/WEB-INF/lib/
папку. Недостаточно добавить его в свой путь к классу.
Если вы используете Eclipse, на вкладке Проблемы должно появиться предупреждение о том, что ресурс недоступен на сервере.
Комментарии:
1. Я использую maven, и у меня есть errai-jaxrs-provider в POM
2. И в localhost я не получаю такой ошибки, когда я развертываю свое приложение на своем ПК (не в режиме разработки)
3. Некоторый jar доступен для вашего локального хоста и недоступен для экземпляра App Engine. Посмотрите на папку, которую я упоминаю, и посмотрите, есть ли у вас там все банки. Это может быть Errai jar или одна из его зависимостей / App Engine.