Ensure you understand the difference between doc literal rpc format: The URLs may look like: Doc Literal: https://mydomain.com/WebService?wsdl RPC: https://mydomain.com/WebService?wsdl=WebService.wsdl The contents will look like: Document Literal: ... This is RPC: Note that you need to save the RPC version in your project. To generate the corresponding JAXB classes - use a maven pom.xml file like this: 4.0.0 mygroup myproject 1.0.0-SNAPSHOT jar ${project.artifactId} org.jvnet.jaxb2.maven2 maven-jaxb2-plugin 0.8.3 my_wsdl generate true ${project.basedir}/src/main/resources/schema/ ${project.build.directory}/generated/java wsdls/WebService.wsdl ${project.basedir}/src/main/resources/binding myjaxbbindings.xjb true -Xannotate org.jvnet.jaxb2_commons jaxb2-basics 0.6.0 org.jvnet.jaxb2_commons jaxb2-basics-annotate 0.6.0 org.codehaus.mojo build-helper-maven-plugin 1.7 add-source generate-sources add-source ${project.build.directory}/generated/java org.apache.maven.plugins maven-compiler-plugin 3.0 1.7 1.7 true org.apache.maven.plugins maven-jar-plugin 2.6 **/*.class **/*.index Then setup a JAXB binding file that looks like this: Then generate the source using mvn generate-sources Then setup a Java class to call the generated sources that looks like this: package com.mycompany; import com.mydomain.*; import com.mydomain.Exception; import org.springframework.oxm.jaxb.Jaxb2Marshaller; import org.springframework.ws.client.core.WebServiceTemplate; import javax.xml.bind.JAXBElement; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.List; public class CallWebServiceUsingWebServiceTemplate { public static void main(String args[]) { List result = null; MyAction request = new ObjectFactory().createMyAction(); request.setArg1("arg1"); WebServiceTemplate webServiceTemplate = getWebServiceTemplate(); JAXBElement elem = (JAXBElement)webServiceTemplate.marshalSendAndReceive(request); MyActionResponse response = (MyActionResponse) elem.getValue(); result = response.getReturn(); } private static WebServiceTemplate getWebServiceTemplate() { WebServiceTemplate webServiceTemplate = new WebServiceTemplate(); Jaxb2Marshaller marshaller1 = new Jaxb2Marshaller(); marshaller1.setContextPath("com.mydomain"); webServiceTemplate.setMarshaller(marshaller1); webServiceTemplate.setUnmarshaller(marshaller1); webServiceTemplate.setDefaultUri("https://mydomain.com/WebService"); return webServiceTemplate; } }