2012-10-15 5 views
3

나는 웹 서비스로 노출 할 클래스@XmlTransient - Axis2는 WS

public class Calculator { 
    public Test getTest(){ 
     return new Test(); 
    } 
} 

있어요. Test2를 [] 테스트에서 @XmlTransient 주석을 추가, 지금

public class Test { 
    private Test2[] tests; 
    @XmlTransient 
    public Test2[] getTests() { 
     return tests; 
    } 
    public void setTests(Test2[] tests) { 
     this.tests = tests; 
    } 
} 

, 나는 그것이 내가 Eclipse를 사용하고 생성 된 WSDL (에 나열 될하지 계산기에 이렇게 마우스 오른쪽 버튼으로 클릭을 기대 해요 : 테스트 정의는 > 웹 서비스>) 웹 서비스를 생성,하지만 난 잘 모르겠어요 :

... 
<wsdl:types> 
<xs:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="..."> 
<xs:complexType name="Test"> 
<xs:sequence> 
<xs:element maxOccurs="unbounded" minOccurs="0" name="tests" nillable="true" type="ax21:Test2"/> 
</xs:sequence> 
</xs:complexType> 
<xs:complexType name="Test2"> 
<xs:sequence/> 
</xs:complexType> 
</xs:schema> 
... 
</wsdl:types> 
... 

당신이 볼 수 있듯이, 테스트 여전히 WSDL (5 행)에 존재한다. 유용한 경우 Axis2, Eclipse Indigo를 사용하고 있습니다.

답변

1

여전히 문제가 있지만 해결 방법을 발견했습니다.

<parameter name="beanPropertyRules"> 
     <bean class="package.Test" excludeProperties="tests" /> 
    </parameter> 

입니다 :이 일을

<bean class="package.Object" excludeProperties="propertyToExcludeFromWSDL" /> 

내 services.xml 파일에 추가됩니다.