Spring-WS Генерация службы SOAP без суффикса параметра запросаJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Spring-WS Генерация службы SOAP без суффикса параметра запроса

Сообщение Anonymous »

Мне нужно использовать некоторые файлы XSD из отраслевого стандарта, чтобы создать на их основе веб-сервис SOAP. REST невозможен, поскольку потребитель может выполнять только вызовы SOAP.
Параметры в XSD определяются следующим образом: Это мое определение конечной точки:

Код: Выделить всё

@Endpoint
@RequiredArgsConstructor
public class DataEndpoint {
private static final String NAMESPACE_URI = "http://www.machine-config.net/namespace/data";

@PayloadRoot(namespace = NAMESPACE_URI, localPart = "getData")
@ResponsePayload
public GetDataResponse getData(@RequestPayload GetData request) {
}
}
Вот моя WsConfiguration:

Код: Выделить всё

@EnableWs
@Configuration
public class WebServiceConfig extends WsConfigurerAdapter {

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

@Bean(name = "dataDefinition")
public DefaultWsdl11Definition dataWsdl11Definition() {
DefaultWsdl11Definition wsdl11Definition = new DefaultWsdl11Definition();
wsdl11Definition.setPortTypeName("dataServicePortType");
wsdl11Definition.setLocationUri("/ws");
wsdl11Definition.setTargetNamespace("http://www.machine-config.net/namespace");
wsdl11Definition.setSchemaCollection(dataSchemas());

return wsdl11Definition;
}

@Bean(name = "dataSchema")
public XsdSchemaCollection dataSchemas() {
CommonsXsdSchemaCollection xsds = new CommonsXsdSchemaCollection(new ClassPathResource("xsd/data-2.18.1433.2.xsd"));
xsds.setUriResolver(new DefaultURIResolver());
xsds.setInline(true);
return xsds;
}
}
Но внутри сгенерированного WSDL генерируется следующая операция: Часть wsdl:input отсутствует.
Когда я меняю xsd:element getData на getDataRequest генерируется элемент wsdl:input.
Но этот обходной путь не сработает, поскольку XSD будет предоставлен поставщиком, и мне не разрешено ничего менять в этом файле.Как я могу сделать Spring-ws распознавать входной параметр без суффикса запроса?

Подробнее здесь: https://stackoverflow.com/questions/773 ... ter-suffix
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»