Какова моя цель?
Я пытаюсь раскрыть сервис мыла, используя 'UWLR_Leerlinggegevens_v2p2.xsd', и он включает в себя и другие xsds также: ниже выставлен WSDL, отсутствует мыло: заголовок в ws: input, следовательно, при импорте wsdlв SOAP UI Часть заголовка не приходит
<wsdl:operation name="leerkrachten">
<soap:operation soapAction="" />
<wsdl:input name="leerkrachten_verzoek">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="leerkrachten_antwoord">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
Мне нужно решение, как добавить часть заголовка в
В чем проблема?
Вот мой код:
@EnableWs
@Configuration
@ComponentScan(basePackageClasses = { WebServiceConfig.class })
public class WebServiceConfig extends WsConfigurerAdapter {
private static final String[] WS_URL_MAPPINGS = { "*.wsdl", "*.xsd"};
@Bean
public ServletRegistrationBean messageDispatcherServlet(ApplicationContext applicationContext) {
MessageDispatcherServlet servlet = new MessageDispatcherServlet();
servlet.setApplicationContext(applicationContext);
servlet.setTransformWsdlLocations(true);
return new ServletRegistrationBean(servlet, WS_URL_MAPPINGS);
}
@Bean(name = "leerlinggegevens")
public DefaultWsdl11Definition defaultWsdl11Definition() {
DefaultWsdl11Definition wsdl11Definition = new DefaultWsdl11Definition();
wsdl11Definition.setPortTypeName("leerlinggegevensPort");
wsdl11Definition.setLocationUri("/ws");
wsdl11Definition.setTargetNamespace("http://www.edustandaard.nl/leerresultaten/2/leerlinggegevens/");
wsdl11Definition.setSchemaCollection(xsdSchemaCollection());
wsdl11Definition.setRequestSuffix("_verzoek");
wsdl11Definition.setResponseSuffix("_antwoord");
wsdl11Definition.setFaultSuffix(":Fault");
return wsdl11Definition;
}
@Bean
public CommonsXsdSchemaCollection xsdSchemaCollection() {
CommonsXsdSchemaCollection xsds = new CommonsXsdSchemaCollection(new Resource[] {
new ClassPathResource("Schemas/UWLR_Autorisatie_v2p2.xsd"),
new ClassPathResource("Schemas/SOAP_Envelope.xsd"),
new ClassPathResource("Schemas/EDEXML.types.vast.xsd"),
new ClassPathResource("Schemas/EDEXML.types.variabel.xsd"),
new ClassPathResource("Schemas/EDEXML.elementen.xsd"),
new ClassPathResource("Schemas/UWLR_Leerlinggegevens_v2p2.xsd")});
xsds.setInline(true);
return xsds;
}
}
также пытался с SimpleWsdl11Definition выставить прямой wsdl вместо использования xsd
@Bean(name = "leerlinggegevens")
public Wsdl11Definition defaultWsdl11Definition() {
SimpleWsdl11Definition wsdl11Definition = new SimpleWsdl11Definition();
wsdl11Definition.setWsdl(new ClassPathResource("wsdl/UWLR_Leerlinggegevens_v2p2.wsdl"));
return wsdl11Definition;
}
, но столкнулся с проблемой при импорте в SOAP UI, поскольку оригинальный wsdl ссылался на другие xsds, как показано ниже
<wsdl:types>
<xs:schema>
<xs:import schemaLocation="../Schemas/UWLR_Leerlinggegevens_v2p2.xsd" namespace="http://www.edustandaard.nl/leerresultaten/2/leerlinggegevens"/>
<xs:import schemaLocation="../Schemas/UWLR_Autorisatie_v2p2.xsd" namespace="http://www.edustandaard.nl/leerresultaten/2/autorisatie"/>
</xs:schema>
</wsdl:types>
с использованием SimpleWsdl11Definition Я не знаю, как добавить другие xsds