1) Setting up the proxy classes

private static final String WEB_SERVICE_SUFFIX = "/Services/v4_0/ImportExport.svc"; //$NON-NLS-1$
private static final String WEB_SERVICE_NAMESPACE = "{https://www.inflectra.com/SpiraTest/Services/v4.0/}ImportExport"; //$NON-NLS-1$
private static final String WEB_SERVICE_NAMESPACE_DATA_OBJECTS = "http://schemas.datacontract.org/2004/07/Inflectra.SpiraTest.Web.Services.v4_0.DataObjects"; //$NON-NLS-1$

String serviceUrl = new URL(baseUrl + WEB_SERVICE_SUFFIX);
ImportExport service = new ImportExport(this.serviceUrl, QName.valueOf(WEB_SERVICE_NAMESPACE));
IImportExport soap = service.getBasicHttpBindingIImportExport();

//Make sure that session is maintained
Map<String, Object> requestContext = ((BindingProvider)this.soap).getRequestContext();
requestContext.put(BindingProvider.SESSION_MAINTAIN_PROPERTY,true);

2) Authenticate and connect to project

boolean success = soap.connectionAuthenticate(this.userName, this.password);
success = soap.connectionConnectToProject(projectId);

3) Create a new incident

RemoteIncident remoteIncident = objectFactory.createRemoteIncident();
remoteIncident.setIncidentTypeId(objectFactory.createRemoteIncidentIncidentTypeId(113));
remoteIncident.setIncidentStatusId(objectFactory.createRemoteIncidentIncidentStatusId(113));
remoteIncident.setName(objectFactory.createRemoteIncidentName("Test incident name"));
remoteIncident.setDescription(objectFactory.createRemoteIncidentDescription("Test description"));
remoteIncident.setCreationDate(objectFactory.createRemoteIncidentCreationDate(DatatypeFactory.newInstance().newXMLGregorianCalendar(new GregorianCalendar( 1976, Calendar.DECEMBER, 22 ))));

try {

      RemoteIncident i = soap.incidentCreate(remoteIncident);

} catch (IImportExportIncidentCreateServiceFaultMessageFaultFaultMessage e) {

      // TODO Auto-generated catch block

      e.printStackTrace();

}

4) Retrieve Incidents

// Create RemoteFilter
RemoteFilter filter1 = objectFactory.createRemoteFilter();

mvf = objectFactory.createMultiValueFilter();

ArrayOfint array1 = objectFactory.createArrayOfint();

array1.getInt().add(1);
array1.getInt().add(2);
array1.getInt().add(3);
array1.getInt().add(4);

mvf.setValues(objectFactory.createMultiValueFilterValues(array1));
filter1.setPropertyName(objectFactory.createRemoteIncidentDescription("PriorityId"));
filter1.setMultiValue(objectFactory.createMultiValueFilter(mvf));
ArrayOfRemoteFilter filters = objectFactory.createArrayOfRemoteFilter();
filters.getRemoteFilter().add(filter1);

// Create RemoteSort
RemoteSort sort = objectFactory.createRemoteSort();
sort.setPropertyName(objectFactory.createRemoteFilterPropertyName("Name"));
sort.setSortAscending(true);
ArrayOfRemoteIncident incidents = soap.incidentRetrieve(filters, sort, 1, 10);
         
try{

      ArrayOfRemoteIncident incidents = soap.incidentRetrieve(filters, sort, 1, 10);

} catch (IImportExportIncidentRetrieveServiceFaultMessageFaultFaultMessage e) {

      // TODO Auto-generated catch block
      e.printStackTrace();

}