已有可以使用的web service 的Wsdl,通过Eclipse Web Service client 生成了一些bean.
我知道可以使用 RegionServiceProxy server = new RegionServiceProxy();,然后server. 可以调用Web service方法。我现在写了一个测试bean public class RegionFunUnits {   
    static RegionServiceProxy server = new RegionServiceProxy();   
//  static RegionServiceProxy server ;   
//  private Region region;   
//  private Esregion esregion;   
//  private Pgsregion pgsregion;   
//  private Essubregion essubregion;   
//  private Pgssubregion pgssubregion;   
//  private Country country;   
//  private Subregion subregion;   
//  private ResponseMessage responseMessage;   
    private String name;   
    private String regionname;   
    private String subregionname;   
    public String getName() {   
        return name;   
    }   
  
    public void setName(String name) {   
        this.name = name;   
    }   
  
    private String countryname;   
    private String searchName;   
    private String searchType;   
  
  
    public String getname() throws RegionError, RemoteException {   
        String regn = "";   
        regn = server.getRegion(regionname)[1].getName();   
        return regn;   
    }   
  
    public String search() {   
        if (searchType == "getRegion") {   
               
        }   
        return null;   
    }   
  
/*  public static void main(String[] args) throws RegionError, RemoteException {  
        System.out.println(server.getRegion("")[1].getName());  
        System.out.println(server.getRegion("")[1].getCategory());  
        List regionlist = Arrays.asList(server.getRegion(""));  
        List subregionlist = Arrays.asList(server.getSubRegion(""));  
        Iterator itosub = subregionlist.iterator();  
        Iterator ito = regionlist.iterator();  
        while (ito.hasNext()) {  
            System.out.println(((Region) ito.next()).getName());  
        }  
        System.out.println("=================================");  
        while (itosub.hasNext()) {  
            System.out.println(((Subregion) itosub.next()).getName());  
        }  
 
    }  
*/   
  
    public String getRegionname() {   
        return regionname;   
    }   
  
    public void setRegionname(String regionname) {   
        this.regionname = regionname;   
    }   
  
    public String getSubregionname() {   
        return subregionname;   
    }   
  
    public void setSubregionname(String subregionname) {   
        this.subregionname = subregionname;   
    }   
  
    public String getCountryname() {   
        return countryname;   
    }   
  
    public void setCountryname(String countryname) {   
        this.countryname = countryname;   
    }   
       
    public String getSearchName() {   
        return searchName;   
    }   
  
    public void setSearchName(String searchName) {   
        this.searchName = searchName;   
    }   
  
    public String getSearchType() {   
        return searchType;   
    }   
  
    public void setSearchType(String searchType) {   
        this.searchType = searchType;   
    }   
  
  
}   
然后我在faces-config里面注册
   <managed-bean>
      <description></description>
      <managed-bean-name>regionFunUnits</managed-bean-name>
      <managed-bean-class>com.gepower.gees.nti.regionservice.rest.soapwrapper.RegionFunUnits</managed-bean-class>
      <managed-bean-scope>session</managed-bean-scope>
   </managed-bean>
但是前台不能取得regionFunUnits的属性
javax.servlet.ServletException: Could not retrieve value of component with path : {Component-Path : [Class: org.ajax4jsf.component.AjaxViewRoot,ViewId: /pages/regionSearch.jsp][Class: javax.faces.component.html.HtmlForm,Id: _idJsp0][Class: javax.faces.component.html.HtmlInputText,Id: name]}   
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:154)   
    org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:100)   
    org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)   
    org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)   
    org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147)   
    org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)   要怎么做啊,还有Web service client 生成的bean的如何用啊?

解决方案 »

  1.   

    IS there anyone can help me?
      

  2.   

    FacesServlet.java:154   154行有错,  可以一步一步的system.out.println,  也可以debug 看看就知道哪一步出问题了。希望对你有帮助
      

  3.   

    问题应该出在:
        public String getname() throws RegionError, RemoteException {   
            String regn = "";   
            regn = server.getRegion(regionname)[1].getName();   
            return regn;   
        }   
    写成这样试试:
        public String getName()  {   
            String regn = ""; 
            try{
                regn = server.getRegion(regionname)[1].getName();  
                return regn;   
            }catch(RegionError re) {
                return regn;
            }
            catch(RemoteException ex){
                return regn;
            }
       }