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