如何从Ant脚本或Jenkins内部调用Web服务?

时间:2011-11-28 22:34:51

标签: web-services ant

我在Jenkins中使用Ant脚本来处理文件的部署。我想要做的是触发对具有Web服务的URL的调用。我的问题是,我怎么能从Ant Script或Jenkins中做到这一点?

提前致谢, 蒙

4 个答案:

答案 0 :(得分:22)

选项1:“获取”任务

Ant get task可用于调用Web服务,但它仅限于GET操作。仅适用于非常简单的Web服务

选项2:卷曲

调用unix curl 命令来调用webservice(有关示例,请参阅此post

<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 plugin调用Web服务。

选项5:ANT HTTP任务

ANT HTTP task是上面任务的替代

答案 1 :(得分:0)

你可以:

  1. 使用Java实现WebService客户端(例如Netbeans可以在几秒钟内生成它)。
  2. 将客户端的jar上传到可以从Jenkins访问的subversion。
  3. 从ANT执行客户端。
  4.      <target name="run">
              <java jar="ws_client/WSClient.jar"/>
         </target> 
    

答案 2 :(得分:0)

与问题相关 - 如何从Ant调用WebServices。 在我的情况下,食蚁兽帮助正确调用并接收来自半复杂案例的响应。 http://aft.sourceforge.net/index.html

<soapRequest>

您可能想要查看的任务。

答案 3 :(得分:0)

看看 Groovy-wslite 。可以找到项目页面here。像魅力一样,易于集成和直观使用。我今天遇到了类似的问题,并在我的问题/答案中添加了一些示例代码:Axis2 with complexTypes in Groovy