Ok I let me give that a go as well... From: d...@epocrates.com To: general@developer.marklogic.com Date: Mon, 14 Nov 2011 19:59:52 +0000 Subject: Re: [MarkLogic Dev General] Retrieving file name/document URI of binary content
You may find the MarkLogic extension to xmlsh more useful to you then writing pure java code. Its written in Java using XCC so is as efficient as java directly but vastly easier to program/script (IMHO) as you dont have to do all the java thingies. http://www.xmlsh.org/ModuleMarkLogic ---------------------------------------- David A. Lee Senior Principal Software Engineer Epocrates, Inc. d...@epocrates.com 812-482-5224 From: Lee, David Sent: Monday, November 14, 2011 2:57 PM To: general@developer.marklogic.com Subject: RE: [MarkLogic Dev General] Retrieving file name/document URI of binary content You can return them as pairs in a sequence for $x in collection("user10") return ( fn:document-uri($x) , $x ) Not sure why the XCC code isnt returning the document-uri but it might not know it ) ---------------------------------------- David A. Lee Senior Principal Software Engineer Epocrates, Inc. d...@epocrates.com 812-482-5224 From: general-boun...@developer.marklogic.com [mailto:general-boun...@developer.marklogic.com] On Behalf Of Amar Wakkar Sent: Monday, November 14, 2011 2:42 PM To: general@developer.marklogic.com Subject: Re: [MarkLogic Dev General] Retrieving file name/document URI of binary content Hello David, No luck, I am getting following error when I try your suggestion: com.marklogic.xcc.exceptions.XQueryException: XDMP-TOOFEWARGS: (err:XPST0017) fn :document-uri() -- Too few args, expected 1 but got 0 [Session: user=user, cb=XCCTestDB [ContentSource: user=user, cb=XCCTestDB [prov ider: address=localhost/127.0.0.1:8006, pool=1/64]]] [Client: XCC/4.2-7, Server: XDBC/5.0-1] in /eval, on line 1 expr: fn:document-uri() at com.marklogic.xcc.impl.handlers.ServerExceptionHandler.handleResponse (ServerExceptionHandler.java:30) at com.marklogic.xcc.impl.handlers.EvalRequestController.serverDialog(Ev alRequestController.java:78) at com.marklogic.xcc.impl.handlers.AbstractRequestController.runRequest( AbstractRequestController.java:78) at com.marklogic.xcc.impl.SessionImpl.submitRequest(SessionImpl.java:268 ) Basically I want to be able to get images stored in Marklogic server back on a JSP page in an <img> tag. So far, I can get the html content upto the JSP page, however to render image, I want to be able to use the same name used while storing the image in Marklogic database e.g. image1,2,3 etc as document URI. I tried following in QConsole which works but there are two problems with it: for $x in collection("user10") return fn:document-uri($x) Problem:1 : It retrieves only the file names so I will have to write one query to get the content and other query to get the file names, that does not sound quite right. Problem:2: Even if problem-1 is not an issue, how do I get it to work from Java code? Should I copy these lines in a .xqy module/page and invoke it somehow from JSP? Is there any better way to get image and it's document-uri in one go from Marklogic. I stored them as binary instances when creating content. I am using Marklogic-5. Thanks Amaresh Wakkar From: d...@epocrates.com To: general@developer.marklogic.com Date: Mon, 14 Nov 2011 15:08:19 +0000 Subject: Re: [MarkLogic Dev General] Retrieving file name/document URI of binary content Try this: Request request = session.newAdhocQuery(" collection('imageCollection')/document-uri() "); ---------------------------------------- David A. Lee Senior Principal Software Engineer Epocrates, Inc. d...@epocrates.com 812-482-5224 From: general-boun...@developer.marklogic.com [mailto:general-boun...@developer.marklogic.com] On Behalf Of Amar Wakkar Sent: Monday, November 14, 2011 9:27 AM To: general@developer.marklogic.com Subject: [MarkLogic Dev General] Retrieving file name/document URI of binary content Dear all, I am learning ways of doing things in Marklogic server. I have managed to save a collection to Marklogic server which consists of few .gif images. The document URI's are the actual file names when I stored them in collection e.g. image1, image2 etc..The collection is named "imageCollection". I can query for "imageCollection" and it does return 3 images in result set. Unfortunately, I am unable to figure out how to get "file name" or Document URI of these images ? createOptions = ContentCreateOptions.newBinaryInstance(); createOptions.setCollections(new String[]{"imageCollection"}); createOptions.setFormatBinary(); content = ContentFactory.newContent(someContent.getAttachmentsFileNames()[i], someContent.getAttachments()[i], createOptions); System.out.println("Inserting contents.."); session.insertContent(content); The call to Request request = session.newAdhocQuery(" collection(\"imageCollection\") "); ResultSequence rs = session.submitRequest(request); while(rs.hasNext()){ System.out.println("Inside contentDao 44444444"); ResultItem item = rs.next(); Following call returns null System.out.println(item.getDocumentURI()); Please help me understand how to get the file names of the images so that I can use them to render back on screen. Thanks Amaresh Wakkar _______________________________________________ General mailing list General@developer.marklogic.com http://developer.marklogic.com/mailman/listinfo/general _______________________________________________ General mailing list General@developer.marklogic.com http://developer.marklogic.com/mailman/listinfo/general
_______________________________________________ General mailing list General@developer.marklogic.com http://developer.marklogic.com/mailman/listinfo/general