就是返回一个字符串,如"<?xml 1.0><person><age>12</age></person></xml>";
解决方案 »
- 关于Mule ESB和Webservice的问题,问题很急。
- 谁有spring in action 中文版的
- 如何实现"web页面 与 Applet进行交互"?
- 系统运行了几个月后出现连接数据库失败问题
- 关于java写socket服务和c写的客户端的通信
- 关于Cannot create iterator for this collection错误
- hibernate配置hbm.xml的问题.关系好复杂,晕忽忽的......请前辈帮忙
- 想请教一下关于Collection,Vector等集合类的问题!
- 如何使一个字符串的值循环累加
- JAVA.JDBC,Oracle小项目
- 我想学习webservice怎么办?
- 一个简单的webservice问题?(急!!!希望那位前辈解答!!进来就有分!!)
java调用web services代码,和java实现web services的代码
都是axis自己生成的,网上很多例子。
给java的例子,给你一个axis的java调用web services的例子吧:
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"));
call.setTargetEndpointAddress(new URL("http://localhost:8080/archive_api_ws/TestServlet"));
}