How to call a web service from Ant script or from within Jenkins?

家住魔仙堡 提交于 2019-12-28 04:20:10

问题


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&param2=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:

  1. Implement a WebService Client with Java (by example Netbeans can generate it in seconds).
  2. Upload the jar of the client to subversion where can be accesible from Jenkins.
  3. 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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!