java client:URL url = new URL("http://localhost.../.../../../xxxx.asmx");.....
解决方案 »
- No tag library could be found with this URI
- System.console().readLine()请教,实在没办法请教CSDN大神
- 在J2EE中操作数据库有没有必要rollback?
- 运行出错
- spring和线程面试时都能问些什么问题?
- sp业务开发问题,100分
- 成都的java程序员注意了
- 在windows2000下,如何将jboss加入到系统服务里面
- 新手请教:怎么开始jave的学习?
- 1000人同时在线的B2C商城服务器配置以及架构问题。
- JSF如何不通过输入框,在页面中设置组件的属性值???
- <html:link>标签如何传动态参数阿,救命 阿
至于代码的写法,我给你一个例子:
import java.util.Random;import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;
import org.apache.axis.encoding.ser.BeanDeserializerFactory;
import org.apache.axis.encoding.ser.BeanSerializerFactory;import com.dayang.archive.api.param.ArchiveFileInfo;
import com.dayang.archive.api.param.ArchiveParam;
import com.dayang.archive.api.param.CopyFileInfo;
import com.dayang.archive.api.param.DownloadFileInfo;
import com.dayang.archive.api.param.DownloadParam;
import com.dayang.archive.api.param.FileCopyParam;
import com.dayang.archive.structure.TaskInfo;
import com.dayang.archive.structure.TaskProgress;import junit.framework.TestCase;public class TestArchiveAPIWebServices extends TestCase {
Service service = null;
Call call = null;
protected void tearDown() throws Exception {
// TODO Auto-generated method stub
super.tearDown();
}
protected void setUp() throws Exception {
super.setUp();
//建立请求服务框架实例。
service = new Service();
//从框架中生成一个维护调用的实例。
call = (Call) service.createCall();
//注册输出参数类型
QName qn = new QName("urn:archive_api","TaskProgress");
call.registerTypeMapping(TaskProgress.class,qn,
new BeanSerializerFactory(TaskProgress.class, qn),
new BeanDeserializerFactory(TaskProgress.class, qn) ); QName qn1 = new QName("urn:archive_api","TaskInfo");
call.registerTypeMapping(TaskInfo.class,qn1,
new BeanSerializerFactory(TaskInfo.class, qn1),
new BeanDeserializerFactory(TaskInfo.class, qn1) ); QName qn2 = new QName("urn:archive_api","FileCopyParam");
call.registerTypeMapping(FileCopyParam.class,qn2,
new BeanSerializerFactory(FileCopyParam.class, qn2),
new BeanDeserializerFactory(FileCopyParam.class, qn2) );
QName qn3 = new QName("urn:archive_api","CopyFileInfo");
call.registerTypeMapping(CopyFileInfo.class,qn3,
new BeanSerializerFactory(CopyFileInfo.class, qn3),
new BeanDeserializerFactory(CopyFileInfo.class, qn3) );
QName qn4 = new QName("urn:archive_api","DownloadParam");
call.registerTypeMapping(DownloadParam.class,qn4,
new BeanSerializerFactory(DownloadParam.class, qn4),
new BeanDeserializerFactory(DownloadParam.class, qn4) );
QName qn5 = new QName("urn:archive_api","DownloadFileInfo");
call.registerTypeMapping(DownloadFileInfo.class,qn5,
new BeanSerializerFactory(DownloadFileInfo.class, qn5),
new BeanDeserializerFactory(DownloadFileInfo.class, qn5) );
QName qn6 = new QName("urn:archive_api","ArchiveFileInfo");
call.registerTypeMapping(ArchiveFileInfo.class,qn6,
new BeanSerializerFactory(ArchiveFileInfo.class, qn6),
new BeanDeserializerFactory(ArchiveFileInfo.class, qn6) );
QName qn7 = new QName("urn:archive_api","ArchiveParam");
call.registerTypeMapping(ArchiveParam.class,qn7,
new BeanSerializerFactory(ArchiveParam.class, qn7),
new BeanDeserializerFactory(ArchiveParam.class, qn7) );
// 调用的web服务的url地址
call.setTargetEndpointAddress(new URL("http://localhost:8080/archive_api_ws/services/archive_api"));
}
public void testGetTaskInfo() throws Exception{
//设置需要调用的函数名称
call.setOperationName(new QName("archive_api","getTaskInfo"));
//设置参数
call.addParameter("arg0", XMLType.XSD_STRING, ParameterMode.IN);
//设置返回参数
call.setReturnClass(TaskInfo.class);
String taskID = "4BF56AB9-DAE3-437C-815B-85C341ABA9C8";
Object[] aryObj = new Object[] {taskID};
TaskInfo a = (TaskInfo) call.invoke(aryObj);
System.out.println(a);
if (a != null) {
System.out.println(a.getCreated());
}
}
public void testAddDownloadTask() throws Exception {
//设置需要调用的函数名称
call.setOperationName(new QName("archive_api","addDownloadTask"));
DownloadParam param = new DownloadParam();
param.setTaskID("test");
param.setTaskName("test");
param.setPriority(0);
param.setProposer("junit");
param.setDownloadTarget( DownloadParam.DOWNLOAD_TARGET_DISK);
param.setObjectID("test");
param.setObjectName("test");
param.setPart(false);
DownloadFileInfo[] aryFileInfo = new DownloadFileInfo[1];
DownloadFileInfo fileInfo = new DownloadFileInfo();
fileInfo.setFileName("test");
fileInfo.setFileSize(1111);
fileInfo.setInpoint(2);
fileInfo.setOutpoint(5);
fileInfo.setTargetFileName("test2");
fileInfo.setTargetPath("c:/");
aryFileInfo[0] = fileInfo;
param.setAryFileInfo(aryFileInfo);
Object[] aryObj = new Object[] {param};
call.invoke(aryObj);
}
public void testAddArchiveTask() throws Exception {
//设置需要调用的函数名称
call.setOperationName(new QName("archive_api","addArchiveTask"));
ArchiveParam param = new ArchiveParam();
param.setTaskID("test123" + (new Random()).nextInt() );
param.setTaskName("test");
param.setPriority(0);
param.setProposer("junit");
param.setObjectID("test");
param.setObjectName("test");
param.setArchiveSource(ArchiveParam.ARCHIVE_SOURCE_DISK);
param.setGroupName("test");
param.setMediaClass("test");
param.setObjectID("test");
param.setObjectName("test");
ArchiveFileInfo[] aryFileInfo = new ArchiveFileInfo[1];
ArchiveFileInfo fileInfo = new ArchiveFileInfo();
fileInfo.setFileName("test");
fileInfo.setFileSize(1111);
fileInfo.setFilePath("c:/"); aryFileInfo[0] = fileInfo;
param.setAryFileInfo(aryFileInfo);
Object[] aryObj = new Object[] {param};
call.invoke(aryObj);
}
}