在.net核心中使用javaweb服务的问题



我正试图从Java(JAX-WS(制作的web服务导入WSDL定义,以便在我的netcore2.1应用程序中使用它。按照这些步骤,我使用了Connected Services和Microsoft WCF Web服务参考提供程序。放入服务的uri,列出可用的服务,更改默认名称空间,并完成其他步骤,没有任何错误。最后,该工具为web服务创建了一个代理引用,但没有模型。

Bellow是请求类和生成的接口的代码片段。

[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工具,但未成功。

做错了什么?是否存在生成有效代理的方法,或者我需要手动处理web请求?

之所以发生这种情况,是因为WSDL定义包含"包装"的内容。

您需要(使用.NETFramework中的"旧"svcutil(:

  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

相关内容

  • 没有找到相关文章

最新更新