Mercurial > hg > digilibservice
view client/src/main/java/info/textgrid/middleware/digilib/clients/cli/DigilibCli.java @ 10:fe0a111cc8f5
server creates tgcrud port in constructor. client takes external server url.
author | casties |
---|---|
date | Fri, 17 Jun 2011 17:07:42 +0200 |
parents | 55bc70b1cb18 |
children |
line wrap: on
line source
/** * */ package info.textgrid.middleware.digilib.clients.cli; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.net.MalformedURLException; import java.net.URL; import javax.xml.ws.Holder; import info.textgrid.namespaces.middleware.digilib.services.digilibservice.DigilibService; import info.textgrid.namespaces.middleware.digilib.services.digilibservice.DigilibServicePortType; /** * @author casties * */ public class DigilibCli { /** * @param args */ public static void main(String[] args) { if (args.length < 4) { System.err .println("use: DigilibCli SID URI QUERY FILENAME [SERVERURL]"); System.exit(1); } String sid = args[0]; String uri = args[1]; String query = args[2]; String filename = args[3]; URL serverUrl = null; try { if (args.length > 4) { serverUrl = new URL(args[4]); } else { serverUrl = new URL( "http://localhost:8080/digilibservice-service/service?wsdl"); } } catch (MalformedURLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } System.out.println("service at " + serverUrl); // call service byte[] imageData = getScaledImage(sid, uri, query, serverUrl); // try to copy to file System.out.println("writing " + filename); File f = new File(filename); try { OutputStream ostream = new FileOutputStream(f); ostream.write(imageData); ostream.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("Done."); } public static byte[] getScaledImage(String sid, String uri, String query, URL serverUrl) { DigilibService service = new DigilibService(serverUrl); DigilibServicePortType port = service.getDigilibServicePort(); String logParam = null; // Holder for return data Holder<String> mimeType = new Holder<String>(); Holder<byte[]> imageData = new Holder<byte[]>(); Holder<Integer> width = new Holder<Integer>(); Holder<Integer> height = new Holder<Integer>(); // call service -- fills Holder port.getScaledImage(sid, uri, query, logParam, mimeType, imageData, width, height); System.out.println("mimeType=" + mimeType.value); System.out.println("imageData=" + imageData.value); System.out.println("width=" + width.value); System.out.println("height=" + height.value); return imageData.value; } }