2014-09-17 1 views
2

Я использую GeneXus Evolution 2 для своего проекта. Во время разработки, появляются ошибки, показанные на следующем изображении. Я не знаю, что это такое и как я решаю эти ошибки. Я сейчас не в курсе. Не могли бы вы дать мне какие-нибудь советы? Большое спасибо.java.lang.NoSuchMethodError GeneXus)

HTTPステータス 500 -java.lang.NoSuchMethodError:com.genexus.ModelContext.server2webcli(Ljava/util/Date;)Ljava/util/Date;

ответ

2

NoSuchMethodError обычно указывает на то, что метод (объявлении) был там, когда вы собрали код, но реализация не хватает, когда вы запускаете его. В большинстве случаев причина заключается в том, что при компиляции у вас была одна версия файла JAR соответствующей библиотеки на вашем пути к классу, а другая - несовместима при запуске.

Более подробный ответ потребуется более точный вопрос ... ;-)

1

Предположив, который вы используете Tomcat в качестве контейнера сервлетов, посмотрите на {Tomcat_Home}/webapps/MyApp/WEB-INF/lib, где MyApp это ваше имя приложения. Будет файл gxclassR.jar, который должен соответствовать версии вашей установки Genexus. Чтобы проверить, есть ли у вас правильный:

  1. Убедитесь, что в этой же папке нет другой подобной библиотеки, такой как gxclassD.jar. Если есть, удалите его.
  2. Перейдите в папку целевых окружений, в которой вы работаете (из меню «Genexus DE» «Инструменты -> Изучите каталог целевой среды») и найдите файл gxclassR.zip. Скопируйте код WEB-INF/lib folder, переименуйте его в gxclassR.jar, заменив фактический файл gxclassR.zip.
  3. Перезапустите приложение tomcat, чтобы убедиться, что новый gxclassR.jar используется.

Если ваш объект не работает, проблема может быть .class, связанная с вашим объектом genexus. Возможно, это неправильно генерируется/скомпилировано. Итак, исправить это:

  1. Принудительное создание объекта genexus. Для этого попробуйте параметр Build with this only, связанный с объектом. Активируйте опцию Force для этого действия, получив доступ к «Tools -> Options -> Build -> Build with this Only».
  2. После принудительной сборки снова перейдите в целевую папку окружения и найдите связанный файл/с .class к объекту. Обычно имя файла/s совпадает с именем объекта. Посмотрите дату изменения и подтвердите, что недавно.
  3. Скопируйте .class в папку WEB-INF\classes в вашей папке webapp.

Я думаю, что это достаточно хорошая информация, чтобы исправить вашу проблему. Если нет, детализируйте свою ошибку немного больше.

0

Проверьте дату и размер файла "gxclassR.zip", который находится в вашей веб-папке в вашем KB (Инструменты -> Исходный каталог целевых окружений), и сравните его с тем, который используется вашим веб-приложением (папка WEB-INF/Библиотека). Если они не совпадают, замените в своем веб-приложении тот, который находится в вашем KB. Если вы не уверены в этом и предпочитаете GX обрабатывать его, удалите все .ver файлы в своей веб-папке и создайте сборку. Это должно синхронизировать все файлы с соответствующей версией.

0

Возможно, также, что метод, который вы вызываете, не существует или существует с разными параметрами либо по количеству, либо по типу.