# HG changeset patch # User casties # Date 1304698948 -7200 # Node ID f723439bd23e18f9270cac48fa5283b93b949145 # Parent 2a34f8fa0f32c1bf2d03a5e33d693ad2063016d4 added query parameter to wsdl. uses parameters now. writing result doesn't work. diff -r 2a34f8fa0f32 -r f723439bd23e src/main/java/info/textgrid/middleware/digilib/services/scaler/Scaler.java --- a/src/main/java/info/textgrid/middleware/digilib/services/scaler/Scaler.java Fri May 06 17:34:50 2011 +0200 +++ b/src/main/java/info/textgrid/middleware/digilib/services/scaler/Scaler.java Fri May 06 18:22:28 2011 +0200 @@ -1,5 +1,6 @@ package info.textgrid.middleware.digilib.services.scaler; +import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; @@ -20,6 +21,7 @@ import digilib.image.ImageWorker; import digilib.io.ImageCacheStream; import digilib.servlet.DigilibConfiguration; +import digilib.servlet.DigilibRequest; import info.textgrid.namespaces.metadata.core._2010.MetadataContainerType; import info.textgrid.namespaces.middleware.digilib.services.digilibservice.DigilibService; @@ -37,10 +39,11 @@ public class Scaler implements DigilibService { @Override - public void getScaledImage(String sessionId, String uri, + public void getScaledImage(String sessionId, String uri, String query, String logParameter, Holder mimeType, - Holder imageData) { - + Holder imageData, Holder width, + Holder height) { + System.out.println("getScaledImage! sid="+sessionId+" uri="+uri+" log="+logParameter); // Get TG-crud service. @@ -67,15 +70,6 @@ SOAPBinding binding = (SOAPBinding) bindingProvider.getBinding(); binding.setMTOMEnabled(true); - // Use non MTOM stub. - /* - * TGCrudService tgcrud_nonMtom = service.getTGCrudPort(); - * //BindingProvider bindingProvider_nonMtom = (BindingProvider) - * tgcrud_nonMtom; //SOAPBinding binding_nonMtom = (SOAPBinding) - * bindingProvider_nonMtom .getBinding(); - * binding_nonMtom.setMTOMEnabled(false); - */ - // Create holders. Holder metadataHolder = new Holder(); Holder dataHolder = new Holder(); @@ -101,18 +95,19 @@ if (mode.equalsIgnoreCase("digilib")) { // try scaling DigilibConfiguration dlConfig = new DigilibConfiguration(); - ImageJobDescription job = new ImageJobDescription(dlConfig); + DigilibRequest dlReq = new DigilibRequest(); + dlReq.setWithParamString(query, "&"); + ImageJobDescription job = ImageJobDescription.getInstance(dlReq, dlConfig); ImageCacheStream imgStream = new ImageCacheStream(istream, mt); System.out.println("iis="+imgStream.getImageInputStream()); ImageLoaderDocuImage img = new ImageLoaderDocuImage(); // reuse reader for stream input img.reuseReader = true; + // identify image size System.out.println("Identifying..."); img.identify(imgStream); job.setDocuImage(img); job.setInput(imgStream); - job.setValue("dw", 500); - job.setValue("dh", 500); // use image worker ImageWorker digilib = new ImageWorker(dlConfig, job); System.out.println("Scaling with "+digilib); @@ -120,12 +115,23 @@ System.out.println(Long.toString(System.currentTimeMillis() - startTime) + " ms"); + // save image to buffer + ByteArrayOutputStream ostream = new ByteArrayOutputStream(); + img.writeImage("image/jpeg", ostream); + System.out.println("written in "+(System.currentTimeMillis()-startTime)+" ms"); + // set buffer in Holder + imageData.value = ostream.toByteArray(); + mimeType.value = "image/jpeg"; + System.out.println("output set."); + + /* save to file File f = new File("/tmp/tgimg.jpg"); OutputStream ostream = new FileOutputStream(f); img.writeImage("image/jpeg", ostream); System.out.println(Long.toString(System.currentTimeMillis() - startTime) + " ms"); + */ } else { // try to copy to file File f = new File("/tmp/tgimg.img"); diff -r 2a34f8fa0f32 -r f723439bd23e src/main/java/info/textgrid/rest.java --- a/src/main/java/info/textgrid/rest.java Fri May 06 17:34:50 2011 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,32 +0,0 @@ -package info.textgrid; - -import info.textgrid.namespaces.middleware.digilib.services.digilibservice.DigilibService; - -import javax.jws.WebService; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.xml.ws.Holder; - -@WebService(targetNamespace = "http://textgrid.info/namespaces/middleware/digilib/services/DigilibService", - serviceName="DigilibService", portName="DigilibServiceSOAP", - endpointInterface="info.textgrid.namespaces.middleware.digilib.services.digilibservice.DigilibService") -public class rest implements DigilibService { - - - - @GET - @Path("/hello") - @Produces("text/plain") - public String getVersion() { - return "hello"; - } - - @Override - public void getScaledImage(String sessionId, String uri, - String logParameter, Holder mimeType, - Holder imageData) { - System.out.println("getscaledimage! sid="+sessionId+" uri="+uri+" log="+logParameter); - } - -} \ No newline at end of file diff -r 2a34f8fa0f32 -r f723439bd23e src/main/webapp/WEB-INF/DigilibService.wsdl --- a/src/main/webapp/WEB-INF/DigilibService.wsdl Fri May 06 17:34:50 2011 +0200 +++ b/src/main/webapp/WEB-INF/DigilibService.wsdl Fri May 06 18:22:28 2011 +0200 @@ -5,17 +5,26 @@ - - - + + + + + - - + + + + +