У меня есть приложение XPages, которое работает довольно счастливо в течение последних нескольких лет.XPages - Невозможно создать класс: 'Не удается найти класс <<classname>> в NSF'
Приложение использует некоторые Java-классы в качестве конвертеров, которые используются для преобразования ввода данных в определенные поля в верхний регистр, правильный случай и т. Д. Эта функциональность присутствовала и работает с момента развертывания приложения.
Сегодня меня попросили внести изменения на одну из страниц, добавив новое поле. Это изменение было внесено в тестовую копию базы данных, приложение было восстановлено и протестировано, и все было в порядке.
То же самое изменение было внесено в базу данных в реальном времени, но после того, как была восстановлена ошибка Невозможно создать экземпляр класса: «Невозможно найти класс uk.co.xxx.beans.UpperCase в NSF». возвращается.
Я попытался восстановить приложение и очистить проект много раз без успеха. Я также попытался изменить код в классе Java и перестроить.
Если я удалю все ссылки на класс UpperCase, он жалуется на класс ProperCase. Похоже, что приложение потеряло ссылку на классы Java, и восстановление не устраняет проблему.
В качестве промежуточного решения я удалил все виды использования этих классов, чтобы пользователи могли хотя бы отображать страницу - но это, очевидно, не долгосрочное решение. Как только я восстанавливаю один экземпляр и восстанавливаю, ошибка возвращается.
Единственное изменение в приложении - это добавление нового поля. Удаление этого не имеет значения.
Можете ли вы предложить что-нибудь еще, что я могу попробовать и что может быть причиной проблемы?
Где классы развернуты в db? 8.5.3 имеет некоторые проблемы с элементом Code/Java, поэтому вам может быть лучше перемещать их в (пользовательскую) папку WEB-INF/src. –
Спасибо, Марк. Классы уже развернуты в WEB-INF/src.Фактически, ответ был намного проще, чем я искал. Похоже, что эта папка src больше не находилась в пути сборки. Я понятия не имею, как это произошло. Вы когда-нибудь видели это (кроме разработчика, физически удаляющего его)? –
Много раз :-(Когда это происходит, путь сборки сбрасывается до состояния по умолчанию: он удаляет все пользовательские записи, включая банки, добавленные из папки 'lib'. В настоящее время я на сервере 9.0.1 (сервер и клиент) и am все еще видя, что это происходит довольно часто. Хотя я не уверен на 100%, похоже, что это не связано с процессом сборки, а скорее с чем-то другим в Designer (например, при открытии или репликации приложения). –