- 保存文件
- 取回文件
1、GetFileRPC.java
package com.neohope.existdb.test; import org.apache.xmlrpc.XmlRpcException; import org.apache.xmlrpc.client.XmlRpcClient; import org.apache.xmlrpc.client.XmlRpcClientConfigImpl; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.net.URL; import java.util.HashMap; import java.util.Hashtable; import java.util.Vector; public class GetFileRPC { public static void GetXML(String documentId, String user, String pwd) throws Exception { String uri = "http://localhost:8080/exist/xmlrpc"; XmlRpcClient client = new XmlRpcClient(); XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl(); config.setServerURL(new URL(uri)); config.setBasicUserName(user); config.setBasicPassword(pwd); client.setConfig(config); HashMap<String, String> options = new HashMap<String, String>(); options.put("indent", "yes"); options.put("encoding", "UTF-8"); options.put("expand-xincludes", "yes"); options.put("process-xsl-pi", "no"); Vector<Object> params = new Vector<Object>(); params.addElement(documentId); params.addElement(options); String xml = (String) client.execute("getDocumentAsString", params); System.out.println(xml); } public static void GetXMLChuncked(String documentId, String outPath, String user, String pwd) throws IOException, XmlRpcException { String url = "http://localhost:8080/exist/xmlrpc"; XmlRpcClient client = new XmlRpcClient(); XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl(); config.setServerURL(new URL(url)); config.setBasicUserName(user); config.setBasicPassword(pwd); client.setConfig(config); Hashtable<String, String> options = new Hashtable<String, String>(); options.put("indent", "no"); options.put("encoding", "UTF-8"); Vector<Object> params = new Vector<Object>(); params.addElement(documentId); params.addElement(options); FileOutputStream fos = new FileOutputStream(outPath); HashMap<?, ?> ht = (HashMap<?, ?>) client.execute("getDocumentData", params); int offset = ((Integer) ht.get("offset")).intValue(); byte[] data = (byte[]) ht.get("data"); String handle = (String) ht.get("handle"); fos.write(data); while (offset != 0) { params.clear(); params.addElement(handle); params.addElement(new Integer(offset)); ht = (HashMap<?, ?>) client.execute("getNextChunk", params); data = (byte[]) ht.get("data"); offset = ((Integer) ht.get("offset")).intValue(); fos.write(data); } fos.close(); } public static void main(String args[]) throws Exception { String user = "neotest"; String pwd = "neotest"; //GetXML("/db/CDA/入院患者护理评估单05.xml", user, pwd); GetXMLChuncked("/db/PNG/兔子.png","兔子1.png", user, pwd); } }