Estoy escribiendo un cliente de prueba para un servicio web. Es una aplicación web Netbeans 6.9.1 que utiliza el marco JSF. Tengo un bean administrado que llama al servicio web.La implementación de Netbeans falla después del cambio de nombre de la clase
Todo funcionó bien hasta que noté un error tipográfico en mi nombre de clase de bean. Fue serviceBean y lo renombré a ServiceBean con mayúscula en la primera letra. Utilicé la función de cambio de nombre seguro de Netbeans y tanto el nombre del archivo como la firma de clase cambiaron como se esperaba.
Pero a partir de entonces tuve muchos problemas para ejecutar mi aplicación en Glassfish 3.0.1.
Puedo construir mi aplicación desde Netbeans sin error (incluso "Limpiar & Build"). Pero si puedo implementar existe el siguiente mensaje en el registro del servidor:
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
Tengo un formulario en una página facelet que será sometido a mi bean gestionado. El formulario será cargado a pesar del error anterior, pero si trato de enviarlo me sale el siguiente error:
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)
Así que esto sólo será un error de seguimiento causado por el NoClassDefFoundError anteriormente.
Y ahora a la parte extraña: Si construyo mi proyecto que crea el archivo ServiceBean.class pero si puedo implementar el proyecto de Netbeans y luego miro a mi directorio de implementación de la clase se cambia el nombre a serviceBean.class.
Parece que el proceso de implementación cambia el nombre del archivo.
¿Cuál es el problema? (Netbeans 6.9.1, 3.0.1 Glassfish, Windows 7)
ACTUALIZACIÓN: se pone aún mejor: ServiceBean.java renombrado a ServiceBean2.java. Resultado: si "Limpio & compilación", el archivo war contiene solo ServiceBean2.class. Si implemento desde NB, el directorio de compilación contiene ServiceBean2.class y serviceBean.class. ¿Cómo me deshago de este fantasma?
intentar buscar "serviceBean" (con minúscula primera letra) en contra de todos los archivos (configuración) de su proyecto NB. Algunos archivos conf pueden contener este nombre antiguo. – MockerTim
¿Estás en Mac o Windows? – vkraemer
@vkraemer Estoy en Windows 7 –