Spring boot webservices, обрабатывающие разные XSD с несколькими пространствами имен в одном WSDL - PullRequest
0 голосов
/ 11 октября 2018

Я работаю над загрузкой Spring.У меня есть файл WSDL, который имеет 2 схемы XSD каждый с различным пространством имен.Я использую приведенный ниже код для создания WSDL

  public static final String NAMESPACE_URI_1=  "http://ip/webservices/TEST1";
  public static final String NAMESPACE_URI_2= "http://ip/webservices/TEST2";

  @Bean(name="XXX")
  public DefaultWsdl11Definition webserviceCreation() {
    DefaultWsdl11Definition definition = new DefaultWsdl11Definition();
    definition.setPortTypeName("TEST1");
    definition.setTargetNamespace(NAMESPACE_URI_1);
    definition.setLocationUri(/webservices/TEST1);
    definition.setSchemaCollection(updateContactXsd());
    return definition;
  }

  @Bean
  public XsdSchemaCollection updateContactXsd() {
    CommonsXsdSchemaCollection xsds = new CommonsXsdSchemaCollection(new ClassPathResource("webservices/TEST1.xsd"));
    xsds.setInline(true);
    return xsds;
  }

Здесь TEST1.XSD имеет пространство имен http://ip/webservices/TEST1 и импортирует другой TEST2.XSD, который имеет nameapce http://ip/webservices/TEST2

Но когда я нажимаю на URL с помощью SOAPUI, я получаю следующую ошибку:

Не найдено сопоставление конечной точки для [SaajSoapMessage {http://ip/webservices/TEST2}

Однако, если в моемметод webserviceCreation(), если я установлю definition.setTargetNamespace(NAMESPACE_URI_2); вместо definition.setTargetNamespace(NAMESPACE_URI_1), то ошибка будет

Не найдено сопоставление конечной точки для [SaajSoapMessage {http://ip/webservices/TEST1}

Canкто-нибудь подскажет, как правильно установить TargetNamespace в коде?

Заранее спасибо.

...