Не удалось выставить SpringBoot SOAP EndPoints, говорится, что не найдено сопоставление конечных точек для оценки IMSRule - PullRequest
1 голос
/ 07 марта 2019

Вот мой класс webserviceConfig:

@EnableWs
@Configuration
public class WebServiceConfig extends WsConfigurerAdapter {

    @Bean
    public ServletRegistrationBean messageDispatcherServlet(ApplicationContext applicationContext) {
        MessageDispatcherServlet servlet = new MessageDispatcherServlet();
        servlet.setApplicationContext(applicationContext);
        servlet.setTransformWsdlLocations(true);
        return new ServletRegistrationBean(servlet, "src/main/resources/wsdl/*");
    }

    @Bean(name = "evaluateIMSRule")
    public DefaultWsdl11Definition getRuleEngineSchema(XsdSchema ruleEngineSchema) {
        DefaultWsdl11Definition wsdl11Definition = new DefaultWsdl11Definition();
        wsdl11Definition.setPortTypeName("port");
        wsdl11Definition.setLocationUri("src/main/resources/wsdl/evaluateIMSRule/");
        wsdl11Definition.setTargetNamespace("services/mobility");
        wsdl11Definition.setSchema(ruleEngineSchema);
        return wsdl11Definition;
    }

    @Bean(name = "itemNOSService")
    public DefaultWsdl11Definition getItemNOSSchema(XsdSchema itemNOSSchema) {
        DefaultWsdl11Definition wsdl11Definition = new DefaultWsdl11Definition();
        wsdl11Definition.setPortTypeName("port");
        wsdl11Definition.setLocationUri("src/main/resources/wsdl/itemNotOnShelf/");
        wsdl11Definition.setTargetNamespace("services/mobility");
        wsdl11Definition.setSchema(itemNOSSchema);
        return wsdl11Definition;
    }

    @Bean
    public XsdSchema ruleEngineSchema() {
        return new SimpleXsdSchema(new ClassPathResource("src/main/resources/wsdl/evaluateIMSRule/evaluateIMSRule.xsd"));
    }

    @Bean
    public XsdSchema itemNOSSchema() {
        return new SimpleXsdSchema(new ClassPathResource("src/main/resources/wsdl/itemNotOnShelf/itemNotOnShelf.xsd"));
    }
}

, а вот мой контроллер,

@EnableAsync
@Endpoint
public class ServiceController {

    @PayloadRoot(namespace = "services/mobility", localPart = "evaluateIMSRule")
    @ResponsePayload
    public String getRuleEngineResponse(@RequestPayload EvaluateIMSRuleRequest request) {

       ....
....
        return response;
    }


    @PayloadRoot(namespace = "services/mobility", localPart = "itemNOSService")
    @ResponsePayload()
    public CreateItemNOSRecordResponse getItemNOSServiceResponse(@RequestPayload CreateItemNOSRecordRequest request) {
       ....
....
        return nosRecordResponse;
    }
}

Когда я запускаю приложение SpringBoot в своем локальном компьютере и нажимаю на конечную точку, 'AssecaetIMSRule'он говорит, что сопоставление конечной точки не найдено для [SaajSoapMessage {http://www.xmlns/*/datatypes/evaluateIMSRule/1.0/}evaluateIMSRule]. нужна помощь.

...