为什么 Jsf 无法访问 Axis2 Generated ADBBean 字段?

why Jsf can't access Axis2 Generated ADBBean field?

我使用 RMI 将 JSF 与 EJB 一起使用,它工作正常,即在 EJB 中使用的所有实体在 JSF 和 xhtml 中都有一个 sekelton,我可以轻松访问它的字段 下面是一个示例代码

 @ManagedBean("abc")
    @SessionScoped
    public class ABC{

        private Customer customer;
        public Customer getCustomer(){
        return customer;
        }

       public void setCustomer(Customer customer){
       this.customer=customer;
       }

       }

    //Entity Class Customer
    Public class Customer implements Serializable{

    private String name;

    public String getName(){
    return name;
    }
    public void setName(String name){
    this.name=name;


       }

    }

在 XHTML 页面中我可以使用 Like:

<input value="#{abc.customer.name}"/>

正如您在上面看到的,我正在访问它的直接字段,因此它可以自动访问 getter 和 setter

但现在我已经改为使用 Axis2 客户端生成的 Web 服务,它们有自己生成的 EJB 实体骨架

下面是一个示例:

@ManagedBean("abc")
    @SessionScoped
    public class ABC{

    private WebClientStub.Customer customer;

    public Customer getCustomer(){
            return customer;
            }

    public void setCustomer(WebClientStub.Customer customer){
           this.customer=customer;
    }



    }

    //Entity Class Customer
    Public class Customer implements org.apache.axis2.databinding.ADBBean{

    protected String localName;

    public String getName(){
    return localName;
    }
    public void setName(java.lang.String name){
    this.localName=name;
       }
    }

并且在 JSF 中我无法访问该名称,就像我之前访问它一样

<input value="#{abc.customer.localName}"/>

我只能访问它的 getter 或 Setter,谁能解释一下原因,或者想出一个解决方案

问题已解决,自动生成的 类 现在有一个不同的变量名称,即我的 'localName' 因此我也在 JSF 输入文本框中更改了它(如您所见在问题中)出现的错误是 'property was not found' 对 localName 我认为自动生成的 getter/setter 即 getName() 和 setName() 在那里我将它们重命名为 getLocalName() 和setLocalName() 然后它起作用了,因此结果证明 JSF 只查找 getter setter 并且不关心 属性 是否被声明。