2011-10-28 3 views
6

그래서 샘플 앱을 작동시키는 데 어려움을 겪고 있습니다. 나는 Primefaces 3.3M4-SNAPSHOT, JBOSS 7 웹 프로파일 (CDI 및 JSF Mojarra)을 사용하고 있습니다.

@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; 

} 
} 

내 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> 

내 응용 프로그램을 실행, 이것이 예외 내가 얻을 :

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) 

사람이 왔는가

나는 내 백업 콩이 내가 한 것과 똑같은 문제에 걸쳐?

+0

여기에 정보가 누락되었습니다. 당신은 아마 당신이 말하는 것 이상을 사용합니다. 이 @ViewScoped의 출처는 어디입니까? Seams 3 얼굴들 prettyfaces annotation을 가지고 있기 때문에 나는 추측한다. 엘이 제안하는 오류는 "getDeleteNode()"를 호출하려고합니다. JSF 페이지에서 "deleteNode"가 발생하지 않았습니까? 전체 정보 또는 github 링크를 보낼 수 있습니까? –

+0

Antoine 안녕하세요. @Viewscoped는 ee6 주석입니다. http://download.oracle.com/javaee/6/api/javax/faces/bean/ViewScoped.html 얼굴이 사용 된 것인지 확실하지 않습니다. jboss 7에 대한 간단한 설명을 제공합니다. 여기에 소개 된 프라임 표면에 설명 된대로 샘플 앱을 만들려고합니다. http://www.primefaces.org/showcase-labs/ui/treeTableContextMenu.jsf –

+0

예 @ViewScoped is in JSF 사양이지만 CDI에는 포함되지 않습니다. 표시하고있는 코드는 일관성이 없으며 viewscope에서이 bean을 필요로하지 않고 요청 작업에서이 bean을 가지고 있기 때문에 작동합니다. 변경되면 ... 작동하지 않습니다. –

답변

5

오케이 대답을 얻었습니다. 그것은 primefaces의 네임 스페이스가 작동 네임 스페이스의 모든 것을 변경하여

xmlns:p="http://primefaces.org/ui" 

xmlns:p="http://primefaces.prime.com.tr/ui" 

변경된 것으로 나타났다. 와우는 추적하기가 어렵습니다.

+1

나중에 참조 용으로 : 호출 된 메서드가 단순히 런타임 예외 (null 포인터)를 던 졌거나'@ PostContruct' 메서드가 실패했을 때 "복합체 구성 요소에서만"과 같은 "속성을 갖고 있지 않습니다"오류도 보았습니다. 또한 [JSF2 컴포지트 구성 요소는 동작 메소드에 대해 PropertyNotFoundException을 발생시킵니다.] (http://stackoverflow.com/questions/3487489/jsf2-composite-component-throws-propertynotfoundexception-for-action-method) 및 버그 [JAVASERVERFACES-1806] (http : //java.net/jira/browse/JAVASERVERFACES-1806). – Arjan

0

내 경우에는 이유가 완전히 다릅니다.

나는 serialVersionUID의 필드를 포함하는 클래스를 복사 :
private static final long serialVersionUID = 5443351151396868724L; 

그래서 두 개의 다른 클래스를 가지고 동일한 serialVersionUID의 개체와이 문제의 단서였다.