之前有个项目需要用java调用net接口实现一个附件的下载转换,找了很多资料,写法类似,但是就是无法调用成功,后来用了2天一点一点琢磨出来的。
import java.net.MalformedURLException;
import java.rmi.RemoteException;
import org.apache.axis.client.Service;
import org.apache.axis.client.Call;
import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;
import javax.xml.rpc.ServiceException;
public class DownloadFile{
public static String changeUrl(String uri, String title, String uid){
//Net webservices地址
String endpoint="http://10.22.161.131:8080/MobileService.asmx";
Call call;
String res = "";
Service service = new Service();
try {
call = (Call)service.createCall();
call.setTargetEndpointAddress(new java.net.URL(endpoint));
call.setOperationName(new QName("http://tyx.moibleoaservice.org/","ceb就TotxtWap")); //发布的方法名
//三个参数,主要要和net接口中的名称一致,类型尽量用String
call.addParameter(new QName("http://tyx.moibleoaservice.org/", "uri"), org.apache.axis.encoding.XMLType.XSD_STRING,ParameterMode.IN);
call.addParameter(new QName("http://tyx.moibleoaservice.org/", "title"), org.apache.axis.encoding.XMLType.XSD_STRING,ParameterMode.IN);
call.addParameter(new QName("http://tyx.moibleoaservice.org/", "uid"), org.apache.axis.encoding.XMLType.XSD_STRING,ParameterMode.IN);
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);
call.setUseSOAPAction(true);
//这里注意有方法名,已经引用的地址。从net接口中找
call.setSOAPActionURI("http://tyx.moibleoaservice.org/cebTotxtWap");
res =(String)call.invoke(new Object[]{uri,title,uid});
//返回值String
System.err.println("==11=>"+res);
} catch (ServiceException e) {
e.printStackTrace();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
}catch (Exception e) {
e.printStackTrace();
}
finally {
}
return res;
}
}
代码没整理,但是可用,jar自己百度吧。我就不一一发了