SOAP API in Java

Applies to QAComplete 14.4, last modified on May 20, 2024

Java 1.6 and later includes JAX-WS API (Java API for XML Web Services) for creating web services and web service clients. The easiest way to work with web services is by using proxy classes, so you do not need to handle raw SOAP XML messages and HTTP requests and responses.

  1. Use the wsimport tool (from the JDK_PATH/bin folder) to create proxy classes based on the QAComplete WSDL.

    wsimport -p com.smartbear.almcomplete -d DestDir -extension http://wsdl_url

    For wsdl_url, use one of the following:

    • For QAComplete SaaS (hosted on

    • For QAComplete On-Premises (hosted on your company-owned server):


    This will create the proxy classes (.class files) in the DestDir folder.

  2. Add these classes to your CLASSPATH environment variable. Or, if you use an IDE (like Eclipse or IntelliJ IDEA), point to these classes in your project properties.

Now, you can connect to the QAComplete web service and call its operations like this:


package com.smartbear.almcomplete.client;

import com.smartbear.almcomplete.*;

public class QACompleteClient {
    public static void main(String[] args) {
        try {
            ServiceSoap service = new Service().getServiceSoap12();
            String version = service.getVersion();
        } catch(Exception e) {

Data type conversions

The LoadByCriteria operations return custom array types defined in the WSDL: ArrayOfBug, ArrayOfProject, and others. You can convert them to a Java List by using the getObjectType() method of the returned array.


ArrayOfBug bugArr = service.bugsLoadByCriteria(authData, condition, sorting, pageSize, pageNumber);
List<Bug> bugs = bugArr.getBug();

See Also

SOAP API Introduction

Highlight search results