zoukankan      html  css  js  c++  java
  • Axis 实现的SOAP附件的传输

    主要是将附件封装在请求头中,这样子客户端只要从请求头中下载下来即可。

    package com.test.soap.hello;
    
    import java.io.File;
    import java.net.URL;
    
    import javax.activation.DataHandler;
    import javax.xml.namespace.QName;
    import javax.xml.rpc.ParameterMode;
    import javax.xml.rpc.encoding.XMLType;
    
    import org.apache.axis.client.Call;
    import org.apache.axis.client.Service;
    import org.apache.axis.encoding.ser.JAFDataHandlerDeserializerFactory;
    import org.apache.axis.encoding.ser.JAFDataHandlerSerializerFactory;
    
    public class AxisFileTest {
    
    	public static void main(String[] args) throws Exception {
    
    		Service service = new Service();
    		Call call = (Call) service.createCall();
    
    		URL myUrl = new URL("http://192.168.1.164:1938");
    
    		call.setTargetEndpointAddress(myUrl);
    		call.setOperationName(new QName("urn:MyAttachServer", "echoDir"));
    
    		QName qnameAttachment = new QName("urn:MyAttachServer", "DataHandler");
    
    		call.registerTypeMapping(DataHandler.class, qnameAttachment,
    				JAFDataHandlerSerializerFactory.class,
    				JAFDataHandlerDeserializerFactory.class);
    		
    		call.addParameter("source", XMLType.XSD_STRING, ParameterMode.IN);
    		call.setReturnType(XMLType.SOAP_ARRAY);
    		
    		DataHandler[] ret = (DataHandler[]) call.invoke(new Object[]{null});
    		
    		for(int i = 0; i < ret.length; ++i){
    			
    			DataHandler recDH = ret[i];
    			File receivedFile = new File(recDH.getName());
    			System.out.println( i + ": " + receivedFile.getName() + "|length: " + receivedFile.length());
    		}
    		
    		
    		
    		
    
    	}
    }


  • 相关阅读:
    pandas 和反射联合使用
    反射
    获取Cookie 遇到的问题
    接口自动化之 问题
    接口自动化之 数据库操作
    logging日志模块
    数据驱动 --ddt
    logging--日志打印模块
    APP专项测试5 --PFS
    Monkey 参数
  • 原文地址:https://www.cnblogs.com/jingLongJun/p/4491104.html
Copyright © 2011-2022 走看看