Проблема с использованием веб-службы Java в ядре .net - PullRequest
0 голосов
/ 21 ноября 2018

Я пытаюсь импортировать определение WSDL из веб-службы, созданной на Java (JAX-WS), для использования в моем приложении net core 2.1.Следуя инструкциям, я использовал Connected Services и поставщика ссылок на веб-службы Microsoft WCF.Поставьте URI службы, перечислите доступные службы, измените пространство имен по умолчанию и выполните остальные шаги без ошибок.В конце инструмент создал ссылку на прокси для веб-службы, но без моделей.

Ниже приведен фрагмент кода класса запроса и сгенерированного интерфейса.

    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("dotnet-svcutil", "1.0.0.1")]
    [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
    [System.ServiceModel.MessageContractAttribute(WrapperName="SERVICO_ENTRADA", WrapperNamespace="http://caixa.gov.br/sibar/manutencao_cobranca_bancaria/boleto/externo", IsWrapped=true)]
    public partial class INCLUI_BOLETORequest
    {

        public INCLUI_BOLETORequest()
        {
        }
    }


    [System.CodeDom.Compiler.GeneratedCodeAttribute("dotnet-svcutil", "1.0.0.1")]
    [System.ServiceModel.ServiceContractAttribute(Namespace="http://caixa.gov.br/sibar/manutencao_cobranca_bancaria/boleto/externo", ConfigurationName="GerencialISP.ServicosExternos.CobCaixa.manutencao_cobranca_bancaria")]
    public interface manutencao_cobranca_bancaria
    {

        [System.ServiceModel.OperationContractAttribute(Action="IncluiBoleto", ReplyAction="*")]
        System.Threading.Tasks.Task<GerencialISP.ServicosExternos.CobCaixa.INCLUI_BOLETOResponse> INCLUI_BOLETOAsync(GerencialISP.ServicosExternos.CobCaixa.INCLUI_BOLETORequest request);

    ...

    }

Вот ссылка WSDL: http://barramento.caixa.gov.br/sibar/ManutencaoCobrancaBancaria/Boleto/Externo?wsdl

Как видите, все моделив импортированных схемах не доступны в сгенерированном коде.Пробовал с svcutil tool тоже безуспешно.

Что-то не так?Существует ли способ создать действительный прокси или мне нужно сделать это вручную с помощью веб-запросов?

1 Ответ

0 голосов
/ 21 ноября 2018

Это произошло из-за того, что определение WSDL содержит «упакованный» контент.

Вам нужно (со «старым» svcutil от .NETFramework):

  1. Загрузить wsdl: svcutil /t:metadata http://barramento.caixa.gov.br/sibar/ManutencaoCobrancaBancaria/Boleto/Externo?wsdl
  2. Создать классы: svcutil *.wsdl *.xsd /language:C# /wrapped

или dotnet-svcutil:

  1. Выполнить dotnet svcutil http://barramento.caixa.gov.br/sibar/ManutencaoCobrancaBancaria/Boleto/Externo?wsdl -wr
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...