我是webservice 菜鸟   我从网上  找了个方法
然后调用 http://developer.51cto.com/art/200908/147125.htm  这免费的webservice 服务 总是调不通
import javax.xml.namespace.QName;
import org.apache.axiom.om.OMElement;
import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.rpc.client.RPCServiceClient;/**
 * 测试
 * 
 * @author lujc
 * 
 */
public class Axis2Client {
public static void main(String[] args) {
Axis2Client axis2Client = new Axis2Client();
axis2Client.add("北京");
} //调用axis2下HelloWorld服务的add操作 
public int add(String city) 

int sum=0; 
//webService的调用地址 
String srvcUrl = "http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl"; 
//操作的命名空间+“:”+操作名 
QName qname = new QName("http://WebXml.com.cn/", "getWeatherbyCityName");

System.out.println("TTTTTTTTTTTTTTTTTT" + qname);
//传递的参数对象集 
Object param[] = new Object[] {city}; 
try { 
//实例化远程服务调用客户端对象 
RPCServiceClient client = new RPCServiceClient(); 
//实例化Options对象 
Options options = new Options(); 
//设置Options对象的连接终端地址 
options.setTo(new EndpointReference(srvcUrl)); 
//设置Options对象的操作事件对象 
options.setAction("urn:getWeatherbyCityName"); 
System.out.println("WWWWWWWWWWWWWW" + qname);
//为远程服务调用客户端对象设置Options子对象 
client.setOptions(options); 
//传递参数,调用服务,获取服务返回结果集 
OMElement element = client.invokeBlocking(qname, param); 
System.out.println("QQQQQQQQQQQQQQQQQQQQQQQQQQ" + qname);
//获取返回结果集中第一条结果的返回内容 
String result=element.getFirstElement().getText(); 
//字符串转换为整型 
//sum= Integer.parseInt(result);  
System.out.println("SSSSSSSSSSSSSSSSS" + result);

//捕捉异常 
catch (AxisFault e) { 
e.printStackTrace(); 

//返回内容 
return sum; 
}
}

解决方案 »

  1.   

    请楼主注意以下几个要点:
    1. 检查是否能用浏览器访问:http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl,正常的话应该会返回一个XML文件,是中国气象局的。
    2. QName qname = new QName("http://WebXml.com.cn/", "getWeatherbyCityName");
    定义命名空间的,它应该与步骤1返回的xml中的targetNamespace="http://WebXml.com.cn/"相对应。
    3.可以判断该代码是用AXIS2实现的调用,请楼务必保证所引用的jar包齐全。如不确定,可以从官方网站下载AXIS2包,将jar包全部拷入,大概中有十几二十个吧。
    4.如还不行,可以关掉防火墙试试。祝你好运