Как изменить автоматически сгенерированный wsdl, который мыльный сервис генерирует в .net - PullRequest
1 голос
/ 09 сентября 2010

Я пытаюсь смоделировать веб-сервис Java, который не завершен, но был разработан, то есть у меня есть wsdl. Я реализовал веб-сервис .net с классами и методами, которые требуются с одинаковыми именами и т. Д. Однако когда я запрашиваю wsdl из веб-службы .net, сгенерированные прокси-классы содержат суффикс «Soap», т.е. вместо FundService, я получаю FundServiceSoap.

Как удалить бит Soap, чтобы мои сгенерированные классы совпадали с классами, когда я в конечном итоге указываю на завершенный веб-сервис Java.

Ответы [ 2 ]

1 голос
/ 10 сентября 2010

Если у вас есть WSDL, вы можете создать для него заглушку сервера, wsdl.exe / serverInterface the.wsdl (или аналогичную, в зависимости от того, какую именно версию .NET вы используете). Это создаст серверную заглушку службы, которая соответствует WSDL, который у вас уже есть.

1 голос
/ 09 сентября 2010

Первый вопрос, который вам нужно задать, заключается в том, совпадает ли сгенерированный WSDL с исходным Java WSDL.Это может быть, но может и не быть.

В частности, в этом случае следует игнорировать прокси-классы.Вероятно, в конце они имели бы «Мыло», даже если они были сгенерированы из исходного WSDL Java.

Скорее всего, сгенерированный WSDL будет не таким же, как исходный WSDL,Он должен быть эквивалентным , но вполне может не совпадать.Если вам нужен идентичный WSDL, вам не повезло, поскольку вы используете веб-сервисы ASMX.Лучшее, что вы можете сделать, это разместить оригинальный WSDL где-то на том же веб-сайте, что и макетная служба.Затем клиенты могут получить исходный WSDL с помощью URL-адреса, который указывает на Service.wsdl, а не на Service.asmx? Wsdl.

Кстати, WCF позволяет указывать расположение WSDL, возвращаемого при метаданных (WSDL) запрашивается.

...