jsf 2 - La clase... $ Proxy $_$$_WeldClientProxy ''no tiene la propiedad''... ''
jsf-2 primefaces (2)
Ok, tengo la respuesta. Resulta que el espacio de nombres para las primaras ha cambiado desde
xmlns:p="http://primefaces.prime.com.tr/ui"
a
xmlns:p="http://primefaces.org/ui"
Al cambiar el espacio de nombres, todo funcionó. Wow fue una cosa difícil de localizar.
Así que estoy luchando para que funcione una aplicación de muestra. Estoy utilizando Primefaces 3.3M4-SNAPSHOT, perfil web JBOSS 7 (CDI y JSF Mojarra).
Tengo mi bean de respaldo:
@Named
@ViewScoped
@URLMapping(id = "viewEditor", pattern = "/editor/e", viewId = "/editor/editor.jsf")
public class ViewEditor implements Serializable {
public void deleteNode() {
selectedNode.getChildren().clear();
selectedNode.getParent().getChildren().remove(selectedNode);
selectedNode.setParent(null);
selectedNode = null;
}
}
Mi xhtml:
<p:contextMenu for="docs">
<p:menuitem value="View" update="documentPanel"
icon="ui-icon ui-icon-search" oncomplete="documentDialog.show()" />
<p:menuitem value="Delete"
actionListener="#{viewEditor.deleteNode}" update="docs"
icon="ui-icon ui-icon-close" />
</p:contextMenu>
Cuando ejecuto mi aplicación, esta es la excepción que obtengo:
javax.el.ELException: /editor/editor.xhtml: The class ''application.ViewEditor$Proxy$_$$_WeldClientProxy'' does not have the property ''deleteNode''.
com.sun.faces.facelets.compiler.AttributeInstruction.write(AttributeInstruction.java:94)
com.sun.faces.facelets.compiler.UIInstructions.encodeBegin(UIInstructions.java:82)
com.sun.faces.facelets.compiler.UILeaf.encodeAll(UILeaf.java:183)
javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
¿Alguien se encontró con el mismo problema que yo?
En mi caso, la razón era completamente diferente.
Copié una clase que incluye el campo serialVersionUID:
private static final long serialVersionUID = 5443351151396868724L;
así que tenía dos clases y objetos diferentes con el mismo serialVersionUID y esta era la clave del problema.