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);
}
}