3
Spring WS – Od XSD k webovej službe
source link: https://novotnyr.github.io/scrolls/spring-ws-od-xsd-k-webovej-sluzbe/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Spring WS – Od XSD k webovej službe
Spring WS – Od XSD k webovej službe
2008/01/11
Krok 1 - základná webová služba
Ukážkový dokument pre požiadavku.
<?xml version="1.0" encoding="UTF-8"?>
<movieReservationRequest xmlns="http://movie.novotnyr.sk/ws/types" >
<title>Battlestar Galactica</title>
<date>2008-12-24</date>
<numberOfTickets>4</numberOfTickets>
</movieReservationRequest>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<servlet>
<servlet-name>spring-ws</servlet-name>
<servlet-class>
org.springframework.ws.transport.http.MessageDispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring-ws</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
spring-ws-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd">
<context:component-scan base-package="sk.novotnyr.movie"/>
<bean class="org.springframework.ws.server.endpoint.mapping
.PayloadRootAnnotationMethodEndpointMapping"/>
</beans>
Endpoint
package sk.novotnyr.movie;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import org.springframework.ws.server.endpoint.annotation.Endpoint;
import org.springframework.ws.server.endpoint.annotation.PayloadRoot;
@Endpoint
public class RegistrationEndPoint {
@PayloadRoot(namespace="http://movie.novotnyr.sk/ws/types",
localPart="movieReservationRequest")
public void register(Source messageSource) {
try {
Transformer transformer
= TransformerFactory.newInstance().newTransformer();
transformer.transform(messageSource,
new StreamResult(System.out));
} catch (Exception e) {
e.printStackTrace();
}
}
}
Klient
WebServiceTemplate webServiceTemplate = new WebServiceTemplate();
webServiceTemplate.setDefaultUri("http://localhost:8080/movie-ws/");
StreamSource source = new StreamSource(new FileReader("D:\\Projects\\movie-ws\\web\\WEB-INF\\xml\\movieReservationRequest.xml"));
StreamResult result = new StreamResult(System.out);
webServiceTemplate.sendSourceAndReceiveToResult(source, result);
Krok 2 - dodanie WSDL
XML schema
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://movie.novotnyr.sk/ws/types"
xmlns:types="http://movie.novotnyr.sk/ws/types" elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:complexType name="movieReservationRequestType">
<xsd:sequence>
<xsd:element name="title" type="string" />
<xsd:element name="date" type="dateTime" />
<xsd:element name="numberOfTickets" type="int" />
</xsd:sequence>
</xsd:complexType>
<xsd:element name="movieReservationRequest" type="types:movieReservationRequestType" />
</xsd:schema>
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK