Spring Web Services: Creating SOAP Web service using the most popular Spring framework, A step by step guide is explained here for Contract-first SOAP web service development using spring web service.
1.      
Initial Setup Can be done as following.
Install JDK (the version that I have used here is 1.6.0_45)
Download and extract the following into C drive (or any other location which you feel is more appropriate.)
Download and extract the following into C drive (or any other location which you feel is more appropriate.)
- Apache Maven (version used for the purpose of this guide is 3.1.1)
- Apache tomcat (version used for the purpose of this guide is 7.0.42
- JAXB (version used for the purpose of this guide is jaxb-ri-2.2.7). Add C:\ jaxb-ri-2.2.7\bin to the system path
2.      
Create a project structure using the following
maven command (if you are running the maven command for the first time then it
will take a while to create the project structure because all the required
dependencies has to be downloaded first)
| 
mvn archetype:generate
  -DarchetypeGroupId=org.springframework.ws
  -DarchetypeArtifactId=spring-ws-archetype -DarchetypeVersion=2.1.2.RELEASE
  -DartifactId=bookstore-web-service -DgroupId=com.bookstore
  -DinteractiveMode=false | 
Following directory structure will be created. Also web.xml and
spring-ws-servlet.xml are created by default in WEB-INF directory
3.      
Create a new directory by name java under bookstore-web-service/src/main directory.
4.      
Create eclipse project files by running the
following maven command. This command has to be executed from inside bookstore-web-service
directory where pom.xml is located
| 
mvn eclipse:eclipse | 
This command will create .settings folder, target folder, .classpath file
and .project file
5.      
Create data contract using xml schema by name bookstore.xsd inside WEB-INF directory.
This data contract defines the message that the web service will accept.
| 
<?xml version="1.0"
  encoding="UTF-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
           xmlns:bs="http://www.bookstore.com/schema" 
           elementFormDefault="qualified" 
           targetNamespace="http://www.bookstore.com/schema"> 
    <xs:element name="Book"> 
           <xs:complexType> 
               <xs:sequence> 
                   <xs:element name="name"
  type="xs:string"/> 
                   <xs:element name="author"
  type="xs:string"/> 
                   <xs:element name="price"
  type="xs:string"/> 
               </xs:sequence> 
           </xs:complexType> 
    </xs:element> 
    <xs:element name="GenericResponse"> 
       <xs:complexType> 
                     <xs:sequence> 
                           <xs:element name="code" type="xs:int"
  /> 
                           <xs:element name="message" type="xs:string"
  /> 
                     </xs:sequence>               
       </xs:complexType> 
    </xs:element> 
       <xs:element name="AddBookRequest"> 
              <xs:complexType> 
                     <xs:sequence> 
                           <xs:element ref="bs:Book"/> 
                     </xs:sequence> 
              </xs:complexType> 
       </xs:element> 
       <xs:element name="AddBookResponse"> 
              <xs:complexType> 
                     <xs:sequence> 
                           <xs:element ref="bs:GenericResponse"/> 
                     </xs:sequence> 
              </xs:complexType> 
       </xs:element> 
       <xs:element name="GetBookRequest"> 
              <xs:complexType> 
                     <xs:sequence> 
                           <xs:element name="name" type="xs:string"/> 
                     </xs:sequence> 
              </xs:complexType> 
       </xs:element>  
       <xs:element name="GetBookResponse"> 
              <xs:complexType> 
                     <xs:sequence> 
                           <xs:element ref="bs:Book"/> 
                     </xs:sequence> 
              </xs:complexType> 
       </xs:element> 
       <xs:element name="DeleteBookRequest"> 
              <xs:complexType> 
                     <xs:sequence> 
                           <xs:element name="name" type="xs:string"/> 
                     </xs:sequence> 
              </xs:complexType> 
       </xs:element> 
       <xs:element name="DeleteBookResponse"> 
              <xs:complexType> 
                     <xs:sequence> 
                           <xs:element ref="bs:GenericResponse"/> 
                     </xs:sequence> 
              </xs:complexType> 
       </xs:element> 
</xs:schema> | 


 
 
No comments :
Post a Comment