Невозможно загрузить wsdl с помощью инструмента с графическим интерфейсом с помощью весенней загрузки
Я новичок как в SOAP, так и в технологиях весенней загрузки. Однако я создал мыльный веб-сервис, используя ссылку ниже. https://spring.io/guides/gs/producing-web-service/
@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, "/ws/*");
}
@Bean(name = "REL-6-MM7-1-4")
@Primary
public DefaultWsdl11Definition defaultWsdl11Definition() {
DefaultWsdl11Definition wsdl11Definition = new DefaultWsdl11Definition();
wsdl11Definition.setPortTypeName("MMSPort");
wsdl11Definition.setLocationUri("/ws");
wsdl11Definition.setTargetNamespace("http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-6-MM7-1-4");
wsdl11Definition.setSchemaCollection(getXsdCollection());
return wsdl11Definition;
}
@Bean
public XsdSchemaCollection getXsdCollection() {
return new XsdSchemaCollection() {
public XsdSchema[] getXsdSchemas() {
return new XsdSchema[]{new SimpleXsdSchema(new ClassPathResource("REL-6-MM7-1-4.xsd")), new SimpleXsdSchema(new ClassPathResource("SoapEnvelope.xsd"))};
}
public XmlValidator createValidator() {
throw new UnsupportedOperationException();
}
};
}
Пожалуйста, найдите XSD опубликовано.
1 ответ
Это ошибка, которая возникает, когда вы не используете правильный URL-адрес в мыльном интерфейсе. Вам нужно найти правильное местоположение вашего XSD в браузере и убедиться, что вы можете получить к нему доступ.
Затем вам нужно проверить URL-адрес, который вы вставляете в пользовательский интерфейс SOAP, и посмотреть, являются ли относительные URL-адреса правильными. Если это не так, вы должны использовать правильное местоположение.
Изменить: в вашем случае я вижу следующий код:
@Bean(name = "REL-6-MM7-1-4")
Поэтому я думаю, что ваш ws выставлен по адресу: http://localhost:8080/ws/REL-6-MM7-1-4.wsdl
Изменить 2: В вашем случае вам также необходимо предоставить несколько xsd. Вы можете сделать это, добавив:
@Bean
public XsdSchemaCollection getXsdCollection() {
return new XsdSchemaCollection() {
public XsdSchema[] getXsdSchemas() {
return new XsdSchema[]{new SimpleXsdSchema(new ClassPathResource("REL-6-MM7-1-4.xsd")), new SimpleXsdSchema(new ClassPathResource("SoapEnvelope.xsd"))};
}
public XmlValidator createValidator() {
throw new UnsupportedOperationException();
}
};
}
и используя его в:
wsdl11Definition.setSchema(getXsdCollection());