问题
I am using Ant Script in Jenkins to handle the deployment of my files. What I want to do is to trigger a call to a URL that has the web service. My question is, how can I do that from Ant Script or from within Jenkins?
Thanks in advance, Monte
回答1:
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="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
回答2:
Related to question - how to call WebServices from Ant. In my case, Anteater helped to properly call and receive response from semi-complicated case. http://aft.sourceforge.net/index.html
<soapRequest>
Is the task you might want to take a look at.
回答3:
Take a look at Groovy-wslite. The project page can be found here. Works like a charm, easy to integrate and intuitive to use. I've had a similar problem today and put some example code in my question / answer: Axis2 with complexTypes in Groovy
回答4:
You can:
- Implement a WebService Client with Java (by example Netbeans can generate it in seconds).
- Upload the jar of the client to subversion where can be accesible from Jenkins.
- Execute the client from ANT.
<target name="run"> <java jar="ws_client/WSClient.jar"/> </target>
来源:https://stackoverflow.com/questions/8303365/how-to-call-a-web-service-from-ant-script-or-from-within-jenkins