2011-11-07 2 views
2

ColdFusion 웹 서비스를 만들었지 만 SOAP 대신 WDDX가 반환됩니다. WDDX 대신 SOAP을 반환하도록하려면 어떻게해야합니까?ColdFusion 웹 서비스에서 WDDX 대신 SOAP을 반환하도록하려면 어떻게합니까?

+0

아마도 복잡한 데이터 유형을 XML로 변환해야합니까? –

+0

돌아가고 싶은 것에 따라 다릅니다. XML이 충분하다면 XML을 사용하십시오. SOAP 유형을 올바르게 얻으려면 여러 개의 CFC를 설정하는 것이 더 쉽습니다. 생산자와 소비자 측면 모두에서 제어 할 수 있다면 JSON을 사용하십시오 (매우 쉽지만 숫자/정수/날짜에 예기치 않은 유형 변환이있을 수 있음). – Henry

+0

저는 서비스 제공 업체입니다. 소비자 측에서는 통제권이 없습니다. –

답변

1

복잡한 개체의 경우 CFC를 올바르게 설정해야합니다. 당신이 다음 cffunctionreturnType="xml"으로 XML 객체를 반환, <cfxml>와 개체 자신의 XML 표현을 만들 수 또는 : Using ColdFusion components to define data types for web services

갱신 : 읽기.

빌트인 CF 복합체 유형을 XML로 변환하기위한 코드 샘플로 coldbox의 XMLConverter 플러그인을 체크 아웃 할 수 있습니다.

+0

내 returntype이 복잡하기 때문에 예외가 throw됩니다. –

+0

귀하의 설명을 바탕으로 내 대답을 편집했습니다. – Henry

+0

귀하의 설명을 바탕으로 내 답변을 다시 편집했습니다. – Henry

0

<cffunction>은 XML 객체를 반환하고 "returnformat"매개 변수를 "plain"으로 설정하십시오.

<cffunction name="GetData" returntype="xml" returnformat="plain"> 
+0

아니요. 저는 웹 서비스를 만들었습니다. 메서드를 호출하면 예상 한 데이터를 반환하지만 WDDX에서는 SOAP 형식의 XML이 아닙니다. –

+0

귀하의 설명을 바탕으로 내 대답을 편집했습니다. –

+0

하지만 이제 복잡한 형식을 XML로 다시 작성해야합니다. –

1

access = remote 인 CFC 메소드는 WDDX가 아닌 비누를 반환해야합니다. 나는이 기능을 수년 동안 사용해 왔다고 확신한다. 제가 생각하기에 컨텐트 유형은 클라이언트가 요청한 내용을 기반으로합니다. Soap-UI을 다운로드하고 http://your.server/yourCFC.cfc?wsdl을 테스트하여 SOAP-UI가 WDDX를 다시 던지는지 확인하십시오. 만약 그렇다면, 나는 약간의 손실을 겪고 있지만 어쨌든 여기에보고해야합니다. 비누 - UI가 적절한 응답을 보는 경우 , 그것은 보내는 것 헤더를 살펴보고 당신이 만들고있어 요청에 비교 (아마도 브라우저를 통해?) 또한 비누 UI 트래픽을 기록하는 Fiddler을 사용할 수 있습니다

다른 요청 원과 비교해보십시오.

위의 http 요청 사항은 완전히 꺼져있을 수 있지만 확인하기가 비교적 쉽습니다. 벨이 울리는 것 같아요.

작성중인 기능의 리턴 유형을 점검 할 수도 있습니다. CF가 좋은 WSDL을 생성하려면 반환 할 CFC에서 메타 데이터를 추출 할 수 있어야합니다.

+0

예, SOAPUI가 내 웹 서비스가 올바르게 작동하고 있음을 보여 줬습니다. 브라우저에서 직접 호출하려고했습니다. –