Wenn Sie ein Plugin entwickeln, z.B. hudson.tasks.Builder erstreckt, folgende in pom.xml für JAX-RS-Client:
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-client</artifactId>
<version>2.25.1</version>
</dependency>
Eine Probe JAX-RS-Client:
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.UriBuilder;
import org.glassfish.jersey.client.ClientConfig;
public class RestClient {
private static String BASE_URL = "http://localhost:8090/rest";
private static String ACCESS_TOKEN = "8900***bc1";
public static String query(String path) {
ClientConfig config = new ClientConfig();
Client client = ClientBuilder.newClient(config);
WebTarget target = client.target(getBaseURI());
// token authentication
String result = target.path(path).request().header("Authorization", "Token " + ACCESS_TOKEN)
.accept(MediaType.APPLICATION_JSON).get(String.class);
return result;
}
private static URI getBaseURI() {
return UriBuilder.fromUri(BASE_URL).build();
}
}
wo http://localhost:8090/rest ist die URL Basis Rest außerhalb Jenkins-Umgebung.Überall in Ihrem Plugin-Code, können Sie diese einfachen Anruf kann je nach Bedarf:
String rsData = RestClient.query("/project_type");
übernehmen die volle Rest Web-Service-URL ist
http://localhost:8090/rest/project_type
Sie auch Apache HttpClient verwenden oder OkHttp
ich glauben Antwort kann hilfreich sein. http://stackoverflow.com/questions/8303365/how-to-call-a-web-service-from-ant-script-or-from-withinjenkins – WillieT