Option 1: “get” task
Ant’s get task can be used to invoke web services, but it restricted to GET operations. Only works for very simple web services
Option 2: curl
Invoke the unix curl command to call the webservice (See this post for examples)
<target name="invoke-webservice">
<exec executable="curl">
<arg line="-d 'param1=value1¶m2=value2' http://example.com/resource.cgi"/>
</exec>
</target>
Note:
The curl command could also be invoked as a post build action in Jenkins
Option 3: Groovy ANT task
If you need a cross platform and flexible solution embed groovy script within your build to invoke the web service.
<target name="invoke-webservice">
<taskdef name="groovy" classname="org.codehaus.groovy.ant.Groovy" classpathref="https://stackoverflow.com/questions/8303365/build.path"/>
<groovy>
import static groovyx.net.http.ContentType.JSON
import groovyx.net.http.RESTClient
def client = new RESTClient("http://localhost:5498/")
def response = client.put(path: "parking_tickets",
requestContentType: JSON,
contentType: JSON)
log.info "response status: ${response.status}"
</groovy>
</target>
Option 4: Groovy Jenkins post build
Use the Groovy Postbuild plugin to invoke the web service.
Option 5: ANT HTTP task
The ANT HTTP task is an alternative to the groovy task above