2014-03-14 3 views
2

У меня есть приложение XPages, которое работает довольно счастливо в течение последних нескольких лет.XPages - Невозможно создать класс: 'Не удается найти класс <<classname>> в NSF'

Приложение использует некоторые Java-классы в качестве конвертеров, которые используются для преобразования ввода данных в определенные поля в верхний регистр, правильный случай и т. Д. Эта функциональность присутствовала и работает с момента развертывания приложения.

Сегодня меня попросили внести изменения на одну из страниц, добавив новое поле. Это изменение было внесено в тестовую копию базы данных, приложение было восстановлено и протестировано, и все было в порядке.

То же самое изменение было внесено в базу данных в реальном времени, но после того, как была восстановлена ​​ошибка Невозможно создать экземпляр класса: «Невозможно найти класс uk.co.xxx.beans.UpperCase в NSF». возвращается.

Я попытался восстановить приложение и очистить проект много раз без успеха. Я также попытался изменить код в классе Java и перестроить.

Если я удалю все ссылки на класс UpperCase, он жалуется на класс ProperCase. Похоже, что приложение потеряло ссылку на классы Java, и восстановление не устраняет проблему.

В качестве промежуточного решения я удалил все виды использования этих классов, чтобы пользователи могли хотя бы отображать страницу - но это, очевидно, не долгосрочное решение. Как только я восстанавливаю один экземпляр и восстанавливаю, ошибка возвращается.

Единственное изменение в приложении - это добавление нового поля. Удаление этого не имеет значения.

Можете ли вы предложить что-нибудь еще, что я могу попробовать и что может быть причиной проблемы?

+0

Где классы развернуты в db? 8.5.3 имеет некоторые проблемы с элементом Code/Java, поэтому вам может быть лучше перемещать их в (пользовательскую) папку WEB-INF/src. –

+0

Спасибо, Марк. Классы уже развернуты в WEB-INF/src.Фактически, ответ был намного проще, чем я искал. Похоже, что эта папка src больше не находилась в пути сборки. Я понятия не имею, как это произошло. Вы когда-нибудь видели это (кроме разработчика, физически удаляющего его)? –

+0

Много раз :-(Когда это происходит, путь сборки сбрасывается до состояния по умолчанию: он удаляет все пользовательские записи, включая банки, добавленные из папки 'lib'. В настоящее время я на сервере 9.0.1 (сервер и клиент) и am все еще видя, что это происходит довольно часто. Хотя я не уверен на 100%, похоже, что это не связано с процессом сборки, а скорее с чем-то другим в Designer (например, при открытии или репликации приложения). –

ответ

1

Я тоже видел это (домино 8.5.3). Я перекомпилирую, пока это не сработает. С перезапуском задачи http, брошенной для хорошей меры. Как вы развертываете классы в db или как файлы jar в lib/ext?

+0

Thx для вашего ответа, Джейсон. Классы развернуты внутри db. Это тоже сервер 8.5.3. Я видел одно и то же сообщение раньше - но обычно еще один rebuild сортирует его. Тот факт, что тест db перестроен в течение 5 минут раньше i Это немного странно. Я буду продолжать попытки перестроить и заставить администраторов перезапускать http, но это не произойдет до понедельника. –

+0

Думаю, вам лучше будет развернуть их за пределами nsf, если сможете. Весь мой опыт развертывания (в основном сервлетов) в БД был плохим. На этой неделе у меня были беззаботные исключения на странице xpage, несмотря на то, что они отлично работали неделями без изменения кода. Я заменил реплику, и все получилось отлично. Извинения за отсутствие деталей. Набрав на iPhone :-) –

4

Открытое производство db в дизайнере и использование Navigator view open WebContent/WEB-INF и удаление классов. Затем снова заново создайте приложение или обновите его из шаблона.

Иногда классы не обновляются правильно. Я видел это несколько раз.

+0

Спасибо Мартину. Я пробовал это и, хотя он не исправлял проблему напрямую, он показал мне, где найти файлы .class. И я мог видеть, что для этих конкретных классов не было файлов .class, что привело меня к проверке пути сборки для проекта (см. Мой комментарий выше). В конечном счете, более очевидная причина (и более простое решение), чем я ожидал и искал. –

0

Я столкнулся с аналогичными проблемами с 8.53 FP2 с тем же «не может создавать ошибки» при доступе от клиента-дизайнера. Я даже поставил PRD в IBM для этого.

Чтобы устранить эту проблему, нам пришлось обновить сервер и клиентов до FP5. У нас была работа, прежде чем мы смогли обновить FP5. Нам пришлось изменить способ развертывания приложения. После того, как база данных была обновлена ​​из шаблона, мы должны были сделать чистую, а затем сборку, используя наш Идентификатор приложения, используемый для подписания приложений.

http://www-01.ibm.com/support/docview.wss?uid=swg21639571

JDAE8ZV2CX XPage с Java Design Element Перерывы При Domino Designer открывается после применения 8.5.3 Fix Pack 2 временное исправление любого +853 Fix Pack 2/Fix Pack 3 исправлений

Смежные вопросы