axis下载附件代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
说明:
一、因为工程不是使用axis.war搭建,是独自搭建的工程,具体的搭建方式查看《创建个人webservice.docx》,在本人的百度文库中能找到,
二、tomcat使用的是5.5的版本,myecplise用的是7.0,jdk用的是1.6的版本,因为用1.5的版本会报错:ng.NoClassDefFoundError: com/sun/mail/util/LineInputStream;
服务端:
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
public class FileSendServer {
public String filename="d:/upload/server.txt" ;
public DataHandler getFile(){
System.out.println("ssssssssssssssssssssss");
DataHandler dh = new DataHandler(new FileDataSource(filename));
System.out.println("aaaaaaaaaaaaaaaaaaaaaa");
return dh;
}
}
Server-config.wsdd:
value="webservice.axis.wsddfiletranspot.FileSendServer"/> deserializer="org.apache.axis.encoding.ser.JAFDataHandlerDeserial izerFactory" type="java:javax.activation.DataHandler" qname="ns1:DataHandler" serializer="org.apache.axis.encoding.ser.JAFDataHandlerSerializerFact ory" encodingStyle="/soap/encoding/" xmlns:ns1="DataHandler"/> 客户端: import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.rmi.RemoteException; import javax.activation.DataHandler; import space.QName; import javax.xml.rpc.ParameterMode; import javax.xml.rpc.ServiceException; import org.apache.axis.client.Call; import org.apache.axis.client.Service; import org.apache.axis.encoding.XMLType; import org.apache.axis.encoding.ser.JAFDataHandlerDeserializerFactory; import org.apache.axis.encoding.ser.JAFDataHandlerSerializerFactory; public class FileReceiveClient { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub String url = "http://127.0.0.1:8090/myAxis/services/FileSendServer"; Service service = new Service(); Call call; DataHandler handler; InputStream input = null; FileOutputStream fos = null; String filepath = "d:/upload/"; String filename = filepath + "tests.txt"; File file = new File(filename); try { call = (Call) service.createCall(); QName qn = new QName("ns1:DataHandler", "DataHandler"); call.setTargetEndpointAddress(url); call.setOperationName(new QName("FileSendServer", "getFile")); call.registerTypeMapping(DataHandler.class, qn, JAFDataHandlerSerializerFactory.class, JAFDataHandlerDeserializerFactory.class); // call.addParameter("source", XMLType.XSD_STRING ,ParameterMode.IN); //设置服务调用方法的传入参数类型 call.setReturnType(qn,DataHandler.class);//需要返回的QName以及返回的类型是DataHandler.class