2009-07-27 1 views
0

나는 웹 서비스를 위해 soap4r 클라이언트를 설정했고, 꽤 잘 작동하고있다. 한 데이터베이스에서 다른 데이터베이스로 데이터를 전송하는 데이 데이터베이스를 사용하고 있습니다. (궁금한 점은 없습니다 ... 최적이 아니라는 것을 알고 있습니다.) 매핑이 정확하다는 것을 완전히 확신 할 수는 없으므로 종종 매우 편리합니다. 특정 레코드가 생성 할 XML웹 서비스를 호출하지 않고 soap4r로 XML을 생성 하시겠습니까?

물론 가능합니다. $DEBUG으로 설정하면 soap4r이 XML을 통해 멋진 덤프를 제공합니다. 전송하려는 "장치"(파일)를 설정할 수도 있습니다.

그러나 실제로 웹 서비스를 호출 할 필요없이 생성 할 XML을 얻을 수 있기를 바랍니다.

이 방법이 있습니까? 주위를 둘러 보니, 다양한 obj2soap과 비슷한 방법이 있지만 그 중 아무 것도 내가 원하는 것처럼 보이지 않습니다.

답변

1

간접적 인 대답 : handsoap을보고 싶을 수도 있습니다. 그것은 더 빠르며 더 많은 루비와 같은 것을 시도합니다. 빌더 스타일의 XML 생성을 사용하지만 모든 것을 직접 생성해야합니다. 이는 클라이언트를 깨끗한 방법으로 작성하는 도구 상자와 같습니다. 이렇게하면 생성 된 내용을 알 수 있으며 쉽게 검사 할 수 있습니다.

def with_debug_output 
    remember = $DEBUG 
    $DEBUG = true 
    yield if block_given? 
    $DEBUG = remember 
end 

다음 그것을 사용 :

with_debug_output do 
    # call soap 
end 

$REMEMBER_DEBUG_STATE = $DEBUG 
$DEBUG = true 
# call soap (and have your XML generated) 
$DEBUG = $REMEMBER_DEBUG_STATE 

이이 같은 좋은 기능으로 추출 할 수있다 :

또 다른 옵션은 $ DEBUG를 설정하고 나중에 그것을 복원하는 것입니다

+0

나는 말을 중류로 바꾸는 것에 관심이 없기 때문에 soap4r을 고수해야합니다. $ DEBUG에 대해 알고 있지만 서비스를 요청하고 싶지 않습니다. XML을 생성하려고합니다. –