2012-07-16 4 views
0

기본값을 사용하는 WSDL 파일이 있고 CXF를 사용하여 이러한 기본값을 사용하여 메서드를 만드는 ObjectFactory 클래스를 생성하고 싶습니다. 예를 들어, 내가 대상이기본값을 사용하는 메소드로 ObjectFactory 클래스를 생성하는 방법은 무엇입니까?

<xsd:complexType name="Smoker"> 
      <xsd:sequence>   
        <xsd:element default="0" minOccurs="0" name="numCigarettesPerDay" nillable="false" type="xsd:integer"/>   
        <xsd:element default="0" minOccurs="0" name="numYearsSmoking" nillable="false" type="xsd:integer"/> 
      </xsd:sequence> 
    </xsd:complexType> 

같이 정의하고 난 대신이 하나

public Smoker createSmoker() { 
      return new Smoker(); 
    } 

답변

1

CXF XJC 기본값 플러그인의

public Smoker createSmoker() { 
      Smoker smoker = new Smoker(); 
      smoker.setNumCigarettesPerDay(0); 
      smoker.setNumYearsSmoking(0); 
      return smoker; 
    } 

같은 방법을 얻으려면 생성 된 빈을 업데이트하여 인스턴스에서 설정되지 않은 필드에 대한 스키마에 정의 된 기본값을 반환하는 XJC 플러그인을 제공합니다.

은 링크가 당신이 무엇을해야하는지에 대한 자세한 정보를 찾을 수 있었다있다 : http://cxf.apache.org/cxf-xjc-dv.html

  • http://java.net/projects/jaxb2-commons/pages/Default-Value
    • 희망이 도움이됩니다.

    +0

    나는이 CXF XJC 플러그인을 이미 사용했지만이 플러그인은 각 클래스에 대한 코드 만 생성하고'ObjectFactory' 클래스 용 코드는 생성하지 않습니다. 예를 들어 CXF XJC 플러그인을 사용하면 다음 두 가지 방법을 사용할 수 있습니다. public int getNumCigarettesPerDay() { if (numCigarettesPerDay == 0) { return 0; } return numCigarettesPerDay; } 공개 정수 getNumYearsSmoking() { 경우 (numYearsSmoking == 0) { 복귀 0; } return numYearsSmoking; } – Gorayni

    관련 문제