📄 mimetestclient.java
字号:
package samples.mime;
import java.io.*;
import java.util.*;
import java.net.*;
import org.w3c.dom.*;
import org.xml.sax.*;
import org.apache.soap.util.xml.*;
import org.apache.soap.util.mime.*;
import org.apache.soap.*;
import org.apache.soap.transport.*;
import org.apache.soap.encoding.*;
import org.apache.soap.encoding.soapenc.*;
import org.apache.soap.rpc.*;
import org.apache.soap.messaging.*;
import javax.activation.*;
import javax.mail.internet.*;
import javax.xml.parsers.*;
/**
* MIME attachment test client.
*
* @author Wouter Cloetens (wcloeten@raleigh.ibm.com)
*/
public class MimeTestClient {
public static void main(String[] args) throws Exception {
String encodingStyleURI = Constants.NS_URI_SOAP_ENC;
URL url = new URL(args[0]);
SOAPMappingRegistry smr = new SOAPMappingRegistry();
BeanSerializer beanSer = new BeanSerializer();
try {
// Build the call.
Call call = new Call();
call.setSOAPMappingRegistry(smr);
call.setTargetObjectURI("urn:mimetest");
call.setMethodName(args[1]);
call.setEncodingStyleURI(encodingStyleURI);
Vector params = new Vector();
if (args[1].equals("sendFile") || args[1].equals("loopFile"))
for (int i = 2; i < args.length; i++) {
DataSource ds = new ByteArrayDataSource(new File(args[i]),
null);
DataHandler dh = new DataHandler(ds);
params.addElement(new Parameter("addedfile",
javax.activation.DataHandler.class, dh, null));
}
else if (args[1].equals("loopFileVector")) {
Vector v = new Vector();
for (int i = 2; i < args.length; i++) {
DataSource ds = new ByteArrayDataSource(new File(args[i]),
null);
DataHandler dh = new DataHandler(ds);
v.addElement(dh);
}
params.addElement(new Parameter("addedfiles", Vector.class,
v, null));
} else if (args[1].equals("loopFileArray")) {
DataHandler dhs[] = new DataHandler[args.length - 2];
for (int i = 2; i < args.length; i++) {
DataSource ds = new ByteArrayDataSource(new File(args[i]),
null);
dhs[i - 2] = new DataHandler(ds);
}
params.addElement(new Parameter("addedfiles", DataSource[].class,
dhs, null));
} else if (args[1].equals("getFileVector")
|| args[1].equals("getFileArray")) {
String s[] = new String[args.length - 2];
for (int i = 2; i < args.length; i++) {
s[i - 2] = args[i];
}
params.addElement(new Parameter("filenames", String[].class,
s, null));
} else if (args[1].equals("listAttachments")) {
for (int i = 2; i < args.length; i++) {
DataSource ds = new ByteArrayDataSource(new File(args[i]),
null);
DataHandler dh = new DataHandler(ds);
MimeBodyPart bp = new MimeBodyPart();
bp.setDataHandler(dh);
bp.setFileName(args[i]);
bp.setHeader(
org.apache.soap.Constants.HEADER_CONTENT_LOCATION,
"myfile" + (i - 2));
call.addBodyPart(bp);
}
}
call.setParams(params);
// System.out.println("Call: " + call);
// System.out.println("Context: " + call.getSOAPContext());
// Invoke the call.
Response resp;
try {
resp = call.invoke(url, "");
} catch (SOAPException e) {
System.err.println("Caught SOAPException (" +
e.getFaultCode() + "): " +
e.getMessage());
e.printStackTrace();
return;
}
// Check the response.
if (!resp.generatedFault()) {
Parameter ret = resp.getReturnValue();
if(ret == null)
System.out.println("No response.");
else {
// System.out.println("Response: " + resp);
printObject(ret.getValue());
}
} else {
Fault fault = resp.getFault();
System.err.println("Generated fault: ");
System.err.println (" Fault Code = " + fault.getFaultCode());
System.err.println (" Fault String = " + fault.getFaultString());
}
} catch(Exception e) {
e.printStackTrace();
}
}
public static void printObject(Object obj) {
if (obj instanceof DataHandler) {
DataHandler dh = (DataHandler)obj;
Object o;
try {
o = dh.getContent();
} catch(IOException ioe) {
o = ioe;
}
System.out.println("DataHandler, name=" + dh.getName()
+ ", type=" + dh.getContentType()
+ ", content: (" + o.getClass().getName()
+ ")\n" + o);
DataSource ds = dh.getDataSource();
String fname = "" + System.currentTimeMillis() + ".out";
System.out.println(" Writing attachment to file: " + fname);
try {
ByteArrayDataSource bds = new ByteArrayDataSource(
ds.getInputStream(), dh.getContentType());
bds.writeTo(new FileOutputStream(fname));
} catch(IOException ioe) {
System.out.println(ioe);
ioe.printStackTrace(System.err);
}
} else if (obj instanceof Vector) {
for(Enumeration enum = ((Vector)obj).elements(); enum.hasMoreElements(); )
printObject(enum.nextElement());
} else if (obj instanceof Object[]) {
Object[] s = (Object[])obj;
for (int i = 0; i < s.length; i++)
printObject(s[i]);
} else
System.out.println(obj);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -