'ruby on rails'에 해당되는 글 8건

  1. 2008.09.19 [Rails] action web service와 각 SOAP Client간 호환성 검토 #1
반응형
[index]
action web service와 각 SOAP Client간 호환성 검토 #1 : http://alnova2.tistory.com/255
 - 1 action web service에서 http request 의 내용을 출력하도록 변경
 - 2 시험할 SOAP API 준비
 - 3 Ruby SOAP에서의 호환성
action web service와 각 SOAP Client간 호환성 검토 #2 : http://alnova2.tistory.com/256
 - 4 gSOAP에서의 호환성
 - 5 PHP nuSOAP에서의 호환성 (WSDL을 이용하지 않음)
 - 6 PHP nuSOAP에서의 호환성 (WSDL을 이용)
action web service와 각 SOAP Client간 호환성 검토 #3 : http://alnova2.tistory.com/257
 - 7 Java Axis 이용 (WSDL을 이용하지 않음)
 - 8 Java Axis 이용 (WSDL을 이용)
 - 9 결론

-----action web service와 각 SOAP Client간 호환성 검토 1편------

Rails 2.0에서 Action web service를 사용하는 것은 http://alnova2.tistory.com/252 에서 이야기를 하였다. 본 페이지에서는 각 SOAP Client간의 호환성에 대한 검토를 진행해 보겠다.

이미 http://alnova2.tistory.com/253 에서 Nusoap과의 호환성을 논한적이 있고 이에 따른 변경을 이야기 했었으나 본 페이지에서는 변경전의 action web service를 가지고 진행하고 문제점들을 논한다.

1. action web service에서 http request의 내용을 출력하도록 변경
SOAP 호출시에 HTTP의 내용을 출력해서 비교해 보는것이 필요하다. 이에 SOAP 요청이 들어오면 request를 decode하는 쪽에 puts 명령을 넣어서 출력하도록 하였다.
[action_web_service/protocol/soap_protocol.rb 변경 빨간색부분이 변경부분임]
        def decode_action_pack_request(action_pack_request)
          puts 'HTTP ENV INFORMATION'
          action_pack_request.env.each { |key,value| puts "#{key}\t=#{value}"}

          return nil unless soap_action = has_valid_soap_action?(action_pack_request)
          service_name = action_pack_request.parameters['action']
          input_encoding = parse_charset(action_pack_request.env['HTTP_CONTENT_TYPE'])
          protocol_options = {
            :soap_action => soap_action,
            :charset  => input_encoding
          }
          decode_request(action_pack_request.raw_post, service_name, protocol_options)
        end

2. 시험할 SOAP API 준비
테스트를 해볼 SOAP API는 http://alnova2.tistory.com/252 에서 포스팅 했던 UsefulSumApi를 조금 변경해서 테스트 한다. name과 param0,param1을 받아서 Result로 param0+param1 과 hello+name 을 리턴을 받는 API를 만들어 보자
[app/apis/useful_sum_api.rb 내용]
[app/controllers/useful_sum_controller.rb 내용]


3. Ruby SOAP에서의 호환성
Ruby에서 제공하는 SOAP library를 이용해서 호출해 보자
[testSoap.rb 의 내용]

실행을 해보면  Rails에서 request의 내용은 다음과 같이 출력된다.

실행 결과는 5 와 Hello 1 하고 정상 출력이 된다. 다음은 rails의 ouput dump이다.

특별히 문제가 없어 보인다. POST 된 XML 메시지에 보면 name, param0, param1의 type은 정의 되어 있지 않으며 이 부분은 WSDL을 가지고 함수를 만들어내는 gSOAP과 유사하다.

다음편에는 PHP(nuSOAP),C/C++(gSOAP)과 Java에서의 호환성 검토이다.
반응형
Posted by alias
,