0 Replies Latest reply on Aug 20, 2009 11:52 PM by Krzysiek Niewidoczny

    Problem with outjecting object

    Krzysiek Niewidoczny Newbie

      Hi everybody,

      I've seam component named resultsAction in which I use @In and @Out annotations I have entity B_property as well.
      When I selected one row from properties list on the page I've exception like this:

      Caused by: java.lang.IllegalArgumentException: Could not set field value by reflection: ResultsAction.activeProperty
      on: pl.skoropada.components.ResultsAction with value: class [Ljava.lang.Object;

      I've found temporary solution for this by changing type of activeProperty to Object but I don't know where the reason is.

      Here is my component:

      @Name(value = "resultsAction")
      public class ResultsAction {
        @In(required = false)
        private Bn_property property;
        private List<Bn_property> properties;
        @Out(required = false)
        private Bn_property activeProperty;

      and here is part of my xhtml's file (results.xhtml):

      <rich:dataList var="prop" value="#{properties}">
           <h:column>#{prop[3]}  </h:column>
           <h:column>#{prop[3]}  </h:column>
           <h:column><h:commandLink action="#{resultsAction.view}" value="#{prop[4]}" /></h:column>

      The second question (less important right now) is why I have to refer to prop[n], where n belongs to 0..N instead of prop.name ?
      When I changed to getter's style I had exception like this one;

       Caused by: javax.faces.FacesException: javax.el.ELException: /UC0001/results.xhtml: For input string: "id"

      so I have to use prop[0] for example.

      Entity class here:

      @Name(value = "property")
      public class Bn_property implements Serializable {
           private static final long serialVersionUID = 1L;
           @Column(unique=true, nullable=false)
           private int id;
               public int getId() {
                return this.id;
           public void setId(int id) {
                this.id = id;
           private String name;
               public String getName() {
                return this.name;
           public void setName(String name) {
                this.name = name;

      Can you help me with this ?