博客【张光见】

胸纳幽兰,神容略若---张若兰

博客园 首页 新随笔 联系 订阅 管理
1)先下载Axis的文件包 :http://ws.apache.org/axis/
2)新建web工程 名称为:axis

拷贝Axis包中 webapps/axis 目录中的所有文件到工程目录的 webroot 目录中,
然后 刷新 工程

新建一个 java 文件,文件名称为:HelloClient,文件内容如下:

import java.util.List;
import java.util.ArrayList;
public class Hello
{
    public String getName(String name)
    {
        return "Hello "+ name;
    }
    public List getList()
    {
     List list= new ArrayList();
     list.add(0,"aa");
     list.add(1,"bb");
     list.add(2,"cc");
     return list;
    }
}
现在拷贝 HelloClient.java 到 webroot 目录中,并改名称为 Hello.jws

现在布署工程,并启动服务

启动浏览器并打开以下链接

http://localhost:8080/axis/Hello.jws?wsdl

3)新建一个测试类:代码如下

 

import java.util.ArrayList;
import java.util.List;

import javax.xml.namespace.QName;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
public class testAXIS
{
    public static void main(String[] args)
    {
        try
        {
            String endpoint = "http://localhost:9000/axis/Hello.jws";
            Service service = new Service();
           
            Call call = null;
            call = (Call) service.createCall();
           
            call.setOperationName(new QName(endpoint, "getName"));
            call.setTargetEndpointAddress(new java.net.URL(endpoint));
            String str = (String) call.invoke(new Object[] { " jian" });
            System.out.println(str);
            
            //这里是复杂数据类型,需要另外配置call.invoke才能转换
            //call.setOperationName(new QName(endpoint, "getList"));
           // call.setTargetEndpointAddress(new java.net.URL(endpoint));
            //List list = (ArrayList) call.invoke(new Object[] {});
           // System.out.println(list.size());
           
        }
        catch (Exception ex)
        {
            ex.printStackTrace();
        }
    }
}
注意需要5个JAR包:axis.jarsaaj.jarjaxrpc.jarcommons-logging-1.0.4.jarcommons-discovery-0.2.jar

posted on 2008-05-20 12:06  willpower  阅读(437)  评论(0编辑  收藏  举报