📄 attachmentsclient.java
字号:
//AttachmentsClient.java
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.*;
public class AttachmentsClient {
public static void main(String[] args) throws Exception {
if (args.length < 2) {
System.err.println ("Usage: java " + AttachmentsClient.class.getName () +
" SOAP-router-URL envelope-file1 envelope-file1 ... envelope-filen");
System.exit (1);
}
String encodingStyleURI = Constants.NS_URI_SOAP_ENC;
URL url = new URL(args[0]);
// Build the Message.
Message msg = new Message();
try{
// Add attachments.
String attachments = "";
for (int i = 1; i < args.length; i++) {
ByteArrayDataSource 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));
msg.addBodyPart(bp);
attachments += "\n<file size=\"" + ds.getSize()
+ "\" location =\"myfile" + (i - 2) + "\">" + args[i]
+ "</file>";
}
// Build the envelope.
String xmlmsg = "";
xmlmsg += "<s:Envelope xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\">";
xmlmsg += "\n<s:Body>\n<loopProcessor xmlns=\"urn:attachmentstestprocessor\">";
xmlmsg += attachments;
xmlmsg += "\n</loopProcessor></s:Body></s:Envelope>";
DocumentBuilder xdb = XMLParserUtils.getXMLDocBuilder();
Document doc =
xdb.parse(new InputSource(new StringReader(xmlmsg)));
if (doc == null) {
System.err.println("Failed to parse XML");
return;
}
Envelope msgEnv = Envelope.unmarshall(doc.getDocumentElement());
// Invoke.
msg.send(url, "", msgEnv);
// Receive response as DataHandler.
printObject(msg.receive());
} catch(Exception e) {
e.printStackTrace();
}
}
public static void printObject(DataHandler dh) {
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);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -