2011-10-28 12 views
6

サンプルアプリケーションを稼働させるのに苦労しています。私はPrimefaces 3.3M4-SNAPSHOT、JBOSS 7 Webプロファイル(CDIとJSF Mojarra)を使用しています。

私は私のバッキングBeanがあります。

@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はどこから来ますか? Seam 3面あなたはprettyfacesアノテーションも持っていると思います。 エラーは、elがプロパティを探していることを示唆しているので、 "getDeleteNode()"を呼び出すようにしてください。 JSFページで「deleteNode」が他に出現していないことは確かですか? 完全な情報やギブツリンクを送信できますか? –

+0

こんにちはアントワーヌ、私の知る限り、@ 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はJSF仕様ですが、CDIでは使用できません。表示しているコードは一貫性がなく、ビュースコープ内にこの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を持つ2つの異なるクラスやオブジェクトを持っていたし、これが問題の手掛かりでした。

関連する問題