如何从Ant脚本或Jenkins中调用web服务



我在Jenkins中使用Ant Script来处理我的文件的部署。我想做的是触发对具有web服务的URL的调用。我的问题是,我如何从Ant Script或Jenkins内部做到这一点?

提前感谢,蒙特

选项1:"get"任务

Ant的get任务可用于调用web服务,但仅限于get操作。仅适用于非常简单的web服务

选项2:curl

调用unix curl命令来调用webservice(参见本文中的示例)

<target name="invoke-webservice">
    <exec executable="curl">
        <arg line="-d 'param1=value1&param2=value2' http://example.com/resource.cgi"/>
    </exec>
</target>

注意:

curl命令也可以在Jenkins

中作为构建后操作调用。

选项3:Groovy ANT任务

如果你需要一个跨平台和灵活的解决方案,在你的构建中嵌入groovy脚本来调用web服务。

<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>

选项4:Groovy Jenkins post build

使用Groovy Postbuild插件来调用web服务

选项5:ANT HTTP任务

ANT HTTP任务是上面groovy任务的替代方案

与问题相关-如何从Ant调用WebServices。在我的例子中,Anteater有助于正确调用和接收半复杂情况的响应。http://aft.sourceforge.net/index.html

<soapRequest>

是你可能想看一下的任务

看一下Groovy-wslite。项目页面可以在这里找到。工作就像一个魅力,易于整合和直观的使用。我今天遇到了一个类似的问题,并在我的问题/回答中放了一些示例代码:Groovy中的Axis2与complexTypes

您可以:

  1. 用Java实现一个WebService客户端(例如Netbeans可以在几秒钟内生成它)。
  2. 将客户端的jar文件上传到subversion,这样可以从Jenkins访问。
  3. 从ANT执行客户端。
<>之前& lt;目标名= "运行"比;& lt; java jar ="ws_client/WSClient.jar"/比;& lt;/target>

相关内容

  • 没有找到相关文章