2010-03-12 5 views
2

webservice를 호출하기 위해 groovy ws를 사용하려고합니다. 생성 된 클래스의 속성 중 하나는 열거 형을 가진 자체 클래스입니다. 디버그 메시지가 com.test.FinalActionType 런타임에 만든 것을 보여 있지만 WSDL 내가하려고하면enum 유형에 groovy ws를 사용 하시겠습니까?

proxy.create("com.test.FinalActionType") 

과 같은 코드를 사용하여 인스턴스를 생성하고 내 클래스에 문자열을 할당 할 수 없습니다 읽을 때 FinalActionType groovy 인스턴스의 실제 위치는 변환을 수행 할 수 없습니다. 어떻게하면이 클래스의 인스턴스를 웹 서비스 호출에 사용할 수 있습니까? 아래 WSDL의 중요한 부분을 붙여 넣었습니다.

 <xsd:simpleType name="FinalActionType"> 
      <xsd:restriction base="xsd:string"> 
       <xsd:enumeration value="stop"/> 
       <xsd:enumeration value="quit"/> 
       <xsd:enumeration value="continue"/> 
       <xsd:whiteSpace value="collapse"/> 
      </xsd:restriction> 
     </xsd:simpleType> 

답변

1

나는 그것을 쉽게 사용할 수 WSClient API를 사용하지 않는, 아직 할 수 있다고 생각하지 않습니다.

"createEnum"메서드를 WSClient 클래스에 추가하라는 제안이있었습니다 (테스트 사례 patchGMOD-82 참조). 문제 GMOD-4에있는 Guillaume Alleon의 의견에 따르면 WSClient 0.5.1이 릴리스 될 때 enum 인스턴스를 만드는 방법이 있어야합니다.

는 UPDATE 다음과 같이 (적어도, I는 0.5.1 시도하지 않은)의 GroovyWS 0.5.2로

, 열거가 GroovyWS 함께 사용될 수

... 
wsProxy = new WSClient(wsdlUrl, this.class.classLoader) 
wsProxy.initialize() 
def anObject = wsProxy.create("some.package.AServiceInterface") 
def anEnum = wsProxy.create("some.package.AnEnum") 
anObject.anEnumProperty = anEnum.AN_ENUM_VALUE 
... 
관련 문제