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. react privateRoute

    import React from 'react'; import PropTypes from 'prop-types'; import {Route,Redirect,withRouter} fr ...

  2. Agilent RF fundamentals (2)- fundamental units of RF

    1Amplitude AM调制 2 Frequency FM调制 3Phase Phase 调制 复合调制 三者关系:

  3. boost库做什么用呢?

    1.C++标准库不是已经很全面了吗?Boost又不是界面库,它主要解决些什么问题呢?哪类问题?2.Boost的开发人员都是C++标准委员会的吧,为什么没把它列做标准库,有什么不完善的问题吗? 3.Bo ...

  4. 深度学习(六十二)SqueezeNet网络设计思想笔记

  5. Date扩展 正则匹配

    <script> Date.prototype.format=function(){ var d=this; //严格匹配 yyyy-mm-dd hh-mm-ss var reg1=/yy ...

  6. Raspberry Pi 配置

    资料 教程 <树莓派使用指南> 系统盘制作 插上电源,连上HDML线,计科

  7. 【英语】Bingo口语笔记(83) - hell系列

  8. static才是对代码的提升

    static才是对代码的提升 static的作用有如下三条: 1):隐藏. 当编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性. 一个是a.c,另一个是main.c. 下面是a ...

  9. python库之threading

    This module constructs higher-level threading interfaces on top of the lower level python库之_threadmo ...

  10. NET Core中使用MediatR实现命令和中介者模式

    NET Core中使用MediatR实现命令和中介者模式 https://www.cnblogs.com/yilezhu/p/9866068.html 在本文中,我将解释命令模式,以及如何利用基于命令 ...