Java调用Webservice(asmx)的几个例子
2009-06-28 17:07

写了几个调用例子:

1、

import org.apache.axis.client.*;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;
import javax.xml.rpc.JAXRPCException;
import javax.xml.rpc.ServiceFactory;

public class TestWebService {

/**
* @param args
*/
public static void main(String[] args) {
   // TODO Auto-generated method stub 
   System.out.println("Start invoking....");
   try
   {
     String endPoint="http://www.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx";
     Service service = new Service();
     Call call = (Call)service.createCall();
     call.setTargetEndpointAddress(new java.net.URL(endPoint));
     call.setOperation("getVersionTime");
     call.setUseSOAPAction(true);
     call.setSOAPActionURI("");   
     call.setOperationName(new QName("www.webxml.com.cn","getVersionTime"));      
     call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);  
     String str=(String)call.invoke( new Object[]{}); 
     System.out.println(str);             
   }catch(Exception e)
   {
     e.printStackTrace();
   }   
}

}

2、

import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Vector;

import javax.xml.namespace.QName;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

public class GetIPContent 
{
     private String url="http://www.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx";
     private String soapaction="";

public GetIPContent()
     { 
         Service service=new Service();
         try{
             Call call=(Call)service.createCall();            
             call.setTargetEndpointAddress(url);            
             call.setOperationName(new QName(soapaction,"getGeoIPContext")); 
           
             call.setReturnType(new QName(soapaction,"getGeoIPContext"),Vector.class);

call.setUseSOAPAction(true);
             call.setSOAPActionURI(soapaction + "getGeoIPContext");

Vector v=(Vector)call.invoke(new Object[]{});//调用方法并传递参数        
             for(int i=0;i<v.size();i++)
             {
                 System.out.println(v.get(i));
             }

}catch(Exception ex)
         {
         ex.printStackTrace();
         }        
     }

public static void main(String args[])
     {
     GetIPContent gip=new GetIPContent();
     }

}

3、

import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Vector;

import javax.xml.namespace.QName;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

public class PutWeather 
{
     private String url="http://www.webxml.com.cn/WebServices/WeatherWebService.asmx";//提供接口的地址
     private String soapaction="";   //域名,这是在server定义的

public PutWeather()
     {
         String City="北京";        
         Service service=new Service();
         try{
             Call call=(Call)service.createCall();            
             call.setTargetEndpointAddress(url);            
             call.setOperationName(new QName(soapaction,"getWeatherbyCityName")); //设置要调用哪个方法
             call.addParameter(new QName(soapaction,"theCityName"), //设置要传递的参数
                     org.apache.axis.encoding.XMLType.XSD_STRING,
javax.xml.rpc.ParameterMode.IN);
             call.setReturnType(new QName(soapaction,"getWeatherbyCityName"),Vector.class); //要返回的数据类型(自定义类型)

//             call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//(标准的类型)

call.setUseSOAPAction(true);
             call.setSOAPActionURI(soapaction + "getWeatherbyCityName");

Vector v=(Vector)call.invoke(new Object[]{City});//调用方法并传递参数        
             for(int i=0;i<v.size();i++)
             {
                 System.out.println(v.get(i));
             }

}catch(Exception ex)
         {
         ex.printStackTrace();
         }        
     }

public static void main(String args[])
     {
         PutWeather pw=new PutWeather();
     }

}

其中第三个是转载的,可惜,地址不知道了……

--!Sorry

写这个以防以后想用的时候找不到例子~~这个是个不错的webservice地址 当然是免费的了。

呵呵~~~突然发现这个东西不错,比写b/s程序好多了,给用户提供的接口多,丰富,安全,可扩展性好……现在的web技术真的是越来越好了!

黑客发明网络的第一天,就注定了网络主宰地球的一天。

Java调用Webservice(asmx)的几个例子的更多相关文章

  1. java 调用webservice (asmx) 客户端开发示例

    这是本人第一次写博客,其实就是自己做个笔记,写的很粗糙,也希望能给跟我遇到同样问题的你一点帮助. 因为最近有个项目要调用webservice接口,之前接触的都是Java开发服务端和客户端的接口,开发前 ...

  2. Java调用WebService方法总结(9,end)--Http方式调用WebService

    Http方式调用WebService,直接发送soap消息到服务端,然后自己解析服务端返回的结果,这种方式比较简单粗暴,也很好用:soap消息可以通过SoapUI来生成,也很方便.文中所使用到的软件版 ...

  3. Java调用WebService方法总结(8)--soap.jar调用WebService

    Apache的soap.jar是一种历史很久远的WebService技术,大概是2001年左右的技术,所需soap.jar可以在http://archive.apache.org/dist/ws/so ...

  4. Java调用WebService方法总结(7)--CXF调用WebService

    CXF = Celtix + XFire,继承了Celtix和XFire两大开源项目的精华,是一个开源的,全功能的,容易使用的WebService框架.文中所使用到的软件版本:Java 1.8.0_1 ...

  5. Java调用WebService方法总结(6)--XFire调用WebService

    XFire是codeHaus组织提供的一个WebService开源框架,目前已被Apache的CXF所取代,已很少有人用了,这里简单记录下其调用WebService使用方法.官网现已不提供下载,可以到 ...

  6. Java调用WebService方法总结(5)--Axis2调用WebService

    Axis2是新一点Axis,基于新的体系结构进行了全新编写,有更强的灵活性并可扩展到新的体系结构.文中demo所使用到的软件版本:Java 1.8.0_191.Axis2 1.7.9. 1.准备 参考 ...

  7. Java调用WebService方法总结(4)--Axis调用WebService

    Axis是比较常用的WebService框架,该项目在2006实现了最终版,后面就没有更新了.文中demo所使用到的软件版本:Java 1.8.0_191.Axis 1.4. 1.准备 参考Java调 ...

  8. Java调用WebService方法总结(3)--wsimport调用WebService

    wsimport是JDK自带的把WSDL转成Java的工具,可以很方便的生成调用WebService的代码.文中所使用到的软件版本:Java 1.8.0_191. 1.准备 参考Java调用WebSe ...

  9. Java调用WebService方法总结(2)--JAX-WS调用WebService

    用JAX-WS(Java API for XML Web Services)调用WebService不需要引入其他框架,都是JDK自带的:文中所使用到的软件版本:Java 1.8.0_191.Dom4 ...

随机推荐

  1. python基础之socket编程(TCP三次握手和四次挥手)

    TCP协议中中的三次握手和四次挥手 建立TCP需要三次握手才能建立,而断开连接则需要四次握手.整个过程如下图所示: 先来看看如何建立连接的. 首先Client端发送连接请求报文,Server段接受连接 ...

  2. Azure VM Scalable Sets -- 适用IAAS架构

    1. 选择Virtual Machine scale set2. 选择resource manager(或创建最新)3. 基本信息配置4. 配置scale的参数(可伸缩的balance模型):VM最小 ...

  3. windows 下多线程

    unsigned uiThread2ID; HANDLE handle = (HANDLE)_beginthreadex(NULL, , ThreadUploadFun, NULL, CREATE_S ...

  4. linux 段错误常见处理方法

    1.如果没有产生core文件,可以查询系统log 通过 sudo cat /var/log/messages |grep segfault 或者 sudo dmesg|grep segfault 获得 ...

  5. 你真的对java static了解吗,代码优化可能更加简单

    static修饰的成员变量和成员方法独立于该类的任何对象.也就是说,它不依赖类特定的实例,被类的所有实例共享. 只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们.因此,s ...

  6. C++ Primer 第四版中文版

    C++Primer是C++的经典教程. 开始时间:2014-08-10 完成时间:2014-08-28 学习成果:基础语法+

  7. [分享]Google 全球 IP 地址库[Google Global Cache IPs]

    Google 全球 IP 地址库 IP 地址来源:http://www.kookle.co.nr,共计4351个. Bulgaria 93.123.23.1 93.123.23.2 93.123.23 ...

  8. [转]Socket编程中,阻塞与非阻塞的区别

    阻塞:一般的I/O操作可以在新建的流中运用.在服务器回应前它等待客户端发送一个空白的行.当会话结束时,服务器关闭流和客户端socket.如果在队列中没有请示将会出现什么情况呢?那个方法将会等待一个的到 ...

  9. 深入了解ZooKeeper(二)

    在上篇博客<<深入了解ZooKeeper(一)>>中我们知道了分布式协调技术.分布式锁的实现和zookeeper服务机制,接下来将进一步了解zookeeper究竟能为我们做了什 ...

  10. call()方法和apply()方法用法总结

    1. 每个函数都包含两个非继承而来的方法:call()方法和apply()方法. 2. 相同点:这两个方法的作用是一样的. 都是在特定的作用域中调用函数,等于设置函数体内this对象的值,以扩充函数赖 ...