代码之家  ›  专栏  ›  技术社区  ›  Kihats

由于EndpointDispatcher上的ContractFilter不匹配,无法在接收方处理带有操作的消息

  •  0
  • Kihats  · 技术社区  · 7 年前

    调用web服务时获取此错误消息:-

    1 回复  |  直到 7 年前
        1
  •  4
  •   Kihats    7 年前

    您忘记在调用web服务之前指定SOAP操作。打开WSDL文件并搜索您试图调用的操作。您应该看到如下内容:

    <?xml version="1.0" encoding="UTF-8"?>
    <wsdl:definitions ...>
    ...
    <wsdl:binding ...>
        ...
        <wsdl:operation name="OhMyGawd">
            <soap:operation soapAction="http://oh.my.gawd"/>
            ...
        </wsdl:operation>
    </wsdl:binding>
    ...
    

    注意 soapAction 值,在本例中,它是 http://oh.my.gawd .

    如果您使用的是Spring Web服务,请添加以下行:

    @Autowired
    private WebServiceTemplate webServiceTemplate;
    
    public void run() {
       ObjectFactory objectFactory = new ObjectFactory();
    
       // Create the request payload
       OhMyGawd ohMyGawd = objectFactory.createOhMyGawd();
       ohMyGawd.setValue(...);
    
       OhMyGawdResponse response = (OhMyGawdResponse) webServiceTemplate.marshalSendAndReceive(
            ohMyGawd, 
            new SoapActionCallback("http://oh.my.gawd")
    );
    
    ...
    

    注:本网站的信用卡 https://myshittycode.come