Я пишу тестовый клиент для веб-сервиса.Это веб-приложение Netbeans 6.9.1, использующее инфраструктуру JSF.У меня есть один управляемый компонент, который вызывает веб-сервис.
Все работало нормально, пока я не заметил опечатку в имени класса моего компонента.Это был serviceBean , и я переименовал его в ServiceBean с первой буквой в верхнем регистре.Я использовал функцию безопасного переименования Netbeans, и имя файла, и сигнатура класса изменились, как и ожидалось.
Но с тех пор у меня возникли большие проблемы с запуском приложения на Glassfish 3.0.1.
Я могусобрать приложение из Netbeans без ошибок (даже «Clean & Build»).Но если я разверну, в журнале сервера появится следующее сообщение:
WARNUNG: Error in annotation processing: java.lang.NoClassDefFoundError: jsf/serviceBean (wrong name: jsf/ServiceBean)
WARNUNG: WEB9052: Unable to load class jsf.ServiceBean, reason: java.lang.ClassNotFoundException: jsf.ServiceBean
INFO: Mojarra 2.0.2 (FCS b10) für Kontext '/PidClient' wird initialisiert.
SCHWERWIEGEND: Unable to load annotated class: jsf.serviceBean, reason: java.lang.NoClassDefFoundError: jsf/serviceBean (wrong name: jsf/ServiceBean)
INFO: Loading application PidClient at /PidClient
У меня есть форма на странице лицевой стороны, которая будет передана моему управляемому компоненту.Форма будет загружена, несмотря на вышеуказанную ошибку, но если я попытаюсь отправить ее, я получу следующую ошибку:
WARNUNG: /index.xhtml @19,94 value="#{serviceBean.fldLname}": Target Unreachable, identifier 'serviceBean' resolved to null
javax.el.PropertyNotFoundException: /index.xhtml @19,94 value="#{serviceBean.fldLname}": Target Unreachable, identifier 'serviceBean' resolved to null
at com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:93)
at com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getConvertedValue(HtmlBasicInputRenderer.java:95)
at javax.faces.component.UIInput.getConvertedValue(UIInput.java:1008)
Так что это будет только последующей ошибкой, вызванной вышеуказанной ошибкой NoClassDefFoundError.
А теперь странная часть: если я собираю свой проект, он создает файл ServiceBean.class , но если я развертываю проект из Netbeans и затем просматриваю каталог моего развертывания, класс переименовывается в serviceBean.class .
Кажется, что процесс развертывания переименовывает файл.
В чем проблема?(Netbeans 6.9.1, Glassfish 3.0.1, Windows 7)
ОБНОВЛЕНИЕ: Становится еще лучше: переименовано в ServiceBean.java в ServiceBean2.java.Результат: если я "Очистить и построить", файл войны содержит только класс ServiceBean2.class.Если я развернусь из NB, каталог сборки содержит ServiceBean2.class и serviceBean.class.Как мне избавиться от этого призрака?