Maven
Şu satırı dahil ederiz
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web-services</artifactId></dependency>
1. WsConfigurerAdapter Nesnesi yaratılır
Örnek
Şöyle yaparız
import org.springframework.ws.config.annotation.EnableWs;import org.springframework.ws.config.annotation.WsConfigurerAdapter;import org.springframework.ws.transport.http.MessageDispatcherServlet;import org.springframework.ws.wsdl.wsdl11.DefaultWsdl11Definition;import org.springframework.xml.xsd.SimpleXsdSchema;import org.springframework.xml.xsd.XsdSchema;@EnableWs@Configurationpublic class SoapWebServiceConfig extends WsConfigurerAdapter {@Beanpublic ServletRegistrationBean messageDispatcherServlet(ApplicationContext context) {MessageDispatcherServlet servlet = new MessageDispatcherServlet();servlet.setApplicationContext(context);servlet.setTransformWsdlLocations(true);return new ServletRegistrationBean<>(servlet, "/ws/*");}@Beanpublic XsdSchema schema() {return new SimpleXsdSchema(new ClassPathResource("birthday.xsd"));}@Beanpublic DefaultWsdl11Definition defaultWsdl11Definition(XsdSchema schema){DefaultWsdl11Definition definition = new DefaultWsdl11Definition();definition.setSchema(schema);definition.setLocationUri("/ws");definition.setPortTypeName("BirthdayServicePort");definition.setTargetNamespace("http://www.webservicesoap.org/birthday");return definition;}}
2. Endpoint yaratılır
Endpoint tarafından kullanılan request ve response nesnelerini XSD'den yaratmak gerekebilir.
Örnek
Şöyle yaparız
import org.springframework.ws.server.endpoint.annotation.Endpoint; import org.springframework.ws.server.endpoint.annotation.PayloadRoot; import org.springframework.ws.server.endpoint.annotation.RequestPayload; import org.springframework.ws.server.endpoint.annotation.ResponsePayload; import org.webservicesoap.birthday.GetAgeResponse; import org.webservicesoap.birthday.GetBirthdayRequest; @Endpoint public class BirthdayEndpoint { private static final String NAMESPACE = "http://www.webservicesoap.org/birthday"; @Autowired private BirthdayService service; @PayloadRoot(localPart = "getBirthdayRequest", namespace = NAMESPACE) @ResponsePayload public GetAgeResponse getBirthdayRequest(@RequestPayload GetBirthdayRequest request) { return service.age(request); } }
Hiç yorum yok:
Yorum Gönder