Движок приложений Google — ошибка NoClassDefFoundError: не удалось инициализировать класс org.jboss.errai.jaxrs.ErraiProvider

#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.