Как я могу сценарий простого сервера SOAP для возврата статического XML на основе пространства имен входящего запроса? - PullRequest
1 голос
/ 27 июля 2011

Мне нужно провести некоторое тестирование для приложения, которое делает несколько SOAP вызывает стороннее приложение и затем обрабатывает результат. Я хотел отправить конкретные данные в тестируемое приложение с программа, имитирующая стороннее приложение.

Я понял, что все, что мне действительно нужно, это иметь процесс на сервере, который 1) принимает входящие SOAP-вызовы из тестируемого приложения 2) определяет, какое пространство имен используется во входящем вызове SOAP 3) возвращает ответ SOAP с использованием статического XML на основе этого пространства имен.

Я думал, что просто буду использовать Ruby SOAP :: RPC :: StandaloneServer, но это предполагает единственное пространство имен в конструкторе, поэтому я был озадачен (я подумал исправление кода, который обрабатывает пространства имен, но это выглядело сложно). Затем я решил попробовать что-нибудь с Ruby TCPServer. Я добрался до код ниже, когда я понял, что понятия не имел, как правильно вернуть соответствующий XML в правильном стиле SOAP.

    require 'socket'

    server = TCPServer.new('127.0.0.1', 9800)
    loop {
      client = server.accept
      # This is for illustration only, it's clearly wrong
      while line = client.gets
        if line =~ /urn:foo/
          # return the foo xml in the correct SOAP fashion
        elsif line =~ /urn:bar/
          # return the bar xml in the correct SOAP fashion
        end
      end
      client.close
    }
    trap('INT') { exit }

Обратите внимание, что тестируемое приложение не является приложением Ruby и оно не дружит с тестированием. Также обратите внимание, что я с удовольствием рассмотрю другое решение (например, решение Perl), если это было проще - я только начал с Ruby, так как У меня есть немного опыта с этим.

1 Ответ

0 голосов
/ 28 июля 2011

Возможно, вы захотите попробовать это вместо этого, оно делает в точности то, что вы хотите. http://www.soapui.org/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...