Java client
We will develop a simple java client and call some methods in the queue API. It's assumed that you have some basic knowledge about programming in Java.
Java (wsimport)
Generate proxy classes for the queue API using wsimport:
mkdir classes sources
wsimport -d classes -s sources -p batchelor.soap http://chemgps.bmc.uu.se/batchelor/api/soap/?wsdl=1
parsing WSDL...
Generating code...
Compiling code...
Add main class
Change directory to sources and use your favorite editor to create a file named client.java inside the batchelor directory.
cd sources
jed batchelor/client.java
This class will contain our main() method, the starting point when running the application.
Compiling
The compiled SOAP proxy classes is located in the classes directory and need to be included:
javac -cp ../classes batchelor/client.java
Running
When running the application, both classes and current directory need to be included to satisfy packages search path.
java -cp ../classes:. batchelor/Client
Examples
First code example simply retrieves the API version from remote server, while the second is a bit more complex and both fetches queued jobs and enqueue a new job.
package batchelor;
import batchelor.soap.*;
class Client {
public static void main(String[] args) {
SoapServiceHandlerService service = new SoapServiceHandlerService();
SoapServiceHandlerPortType client = service.getSoapServiceHandlerPort();
System.out.println(client.version());
}
}
Output from running client2.java should look something like this:
2.0 Task: default (Job 2) Queued: 2018-11-14 13:05:20.082591[Europe/Stockholm] State: crashed Task: default (Job 2) Queued: 2018-11-14 13:03:14.603137[Europe/Stockholm] State: crashed Task: default (Job 2) Queued: 2018-11-14 12:59:25.445768[Europe/Stockholm] State: success Task: default (Job 1) Queued: 2018-11-14 12:43:35.872742[Europe/Stockholm] State: success ... Task: default () Queued: 2018-11-15 16:12:39.264869[Europe/Stockholm] State: pending