asmx java_eclipse插件实现Java调用 asmx 的Web Service

eclipse插件(axis2 tool--Code Generator Wizard)实现Java调用 asmx 的Web Service

AXIS2 下载地址 http://ws.apache.org/axis2/download.cgi

其eclipse工具 http://ws.apache.org/axis2/tools/index.html

Code Generator Wizard - Eclipse Plug-in 可以以eclipse中的link方式安装.即可以通过自动

生成java service code.

具体步骤如下:

在eclipse的java project中 NEW --> Other --> Axis2 Wizards -->Axis2 Code Generator

NEXT --> 选择 Generate java source code from a WSDL file

NEXT --> 在WSDL file location: 中输入 : http://www.webservicex.net/globalweather.asmx?WSDL

NEXT --> NEXT --> 选择好文件生成路径

如: E:\eclipseworkspace\axis213\src

FINISH 后会自动生成两个文件:

GlobalWeatherCallbackHandler.java 和 GlobalWeatherStub.java

新建一个测试文件GlobalWeatherTest.java.

内容如下:

package net.webservicex.www;

import java.io.FileNotFoundException;

import java.io.IOException;

import java.io.StringReader;

import java.rmi.RemoteException;

import javax.xml.parsers.DocumentBuilder;

import javax.xml.parsers.DocumentBuilderFactory;

import javax.xml.parsers.ParserConfigurationException;

import org.w3c.dom.Document;

import org.w3c.dom.Element;

import org.w3c.dom.Node;

import org.w3c.dom.NodeList;

import org.xml.sax.InputSource;

import org.xml.sax.SAXException;

public class GlobalWeatherTest {

public static void main(String[] args) throws RemoteException {

GlobalWeatherStub stub = new GlobalWeatherStub();

GlobalWeatherStub.GetCitiesByCountry request = new GlobalWeatherStub.GetCitiesByCountry();

request.setCountryName("Korea");

GlobalWeatherStub.GetCitiesByCountryResponse response = stub

.GetCitiesByCountry(request);

System.out.println("=================国家城市=================");

//System.out.println(response.getGetCitiesByCountryResult());

String xml = response.getGetCitiesByCountryResult();

parseXML(xml);

GlobalWeatherStub.GetWeather weatherRequest = new

GlobalWeatherStub.GetWeather();

weatherRequest.setCountryName("Korea");

weatherRequest.setCityName("Seoul");

GlobalWeatherStub.GetWeatherResponse weatherResponse =

stub.GetWeather(weatherRequest);

System.out.println("=================国家/城市/天气=================");

System.out.println(weatherResponse.getGetWeatherResult());

}

public static void parseXML(String xml) {

DocumentBuilderFactory domfac = DocumentBuilderFactory.newInstance();

try {

DocumentBuilder dombuilder = domfac.newDocumentBuilder();

StringReader rd = new StringReader(xml);

InputSource is = new InputSource(rd);

Document doc = dombuilder.parse(is);

Element root = doc.getDocumentElement();

NodeList citys = root.getChildNodes();

if (citys != null) {

for (int i = 0; i < citys.getLength(); i++) {

Node city = citys.item(i);

if (city.getNodeType() == Node.ELEMENT_NODE) {

for (Node node = city.getFirstChild(); node != null; node = node

.getNextSibling()) {

if (node.getNodeType() == Node.ELEMENT_NODE) {

if (node.getNodeName().equals("Country")) {

String country = node.getFirstChild()

.getNodeValue();

System.out.print(country);

}

if (node.getNodeName().equals("City")) {

String cityname = node.getFirstChild()

.getNodeValue();

System.out.println(" || " + cityname);

}

}

}

}

}

}

} catch (ParserConfigurationException e) {

e.printStackTrace();

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (SAXException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

}

运行结果如下:

=================国家城市=================

Korea, Republic of || Kwangju Ab

Korea, Republic of || Kunsan Ab

Korea, Republic of || Yosu Airport

Korea, Republic of || Chunchon Ab

Korea, Republic of || Hoengsong Ab

Korea, Republic of || Kangnung Ab

Korea, Republic of || Wonju

Korea, Republic of || Cheju International Airport

Korea, Republic of || Pusan / Kimhae International Airport

Korea, Republic of || Mosulpo Ab

Korea, Republic of || Sach'On Ab

Korea, Republic of || Ulsan

Korea, Republic of || Tonghae Radar Site

Korea, Republic of || Seoul / Yongdungp'O Rokaf Wc

Korea, Republic of || Pyongtaek Ab

Korea, Republic of || Seoul

Korea, Republic of || Seoul E Ab

Korea, Republic of || Koon-Ni Range

Korea, Republic of || Osan Ab

Korea, Republic of || Paengnyongdo Ab

Korea, Republic of || Yeonpyeungdo

Korea, Republic of || Seoul / Kimp'O International Airport

Korea, Republic of || Yeoju Range

Korea, Republic of || Suwon Ab

Korea, Republic of || Camp Stanley / H-207

Korea, Republic of || Yongsan / H-208 Hp

Korea, Republic of || Andong

Korea, Republic of || Paekado

Korea, Republic of || Taejon Kor-Afb

Korea, Republic of || Songmu Ab

Korea, Republic of || Taejon

Korea, Republic of || Pohang Ab

Korea, Republic of || Jung Won Rok-Ab

Korea, Republic of || Mangilsan Ab

Korea, Republic of || Taegu Ab

Korea, Republic of || Sangju

Korea, Republic of || Taegu

Korea, Republic of || Chongju Ab

Korea, Republic of || Woong Cheon

Korea, Republic of || Yechon Ab

Korea, Democratic People's Republic of || Kimchaek

Korea, Democratic People's Republic of || Pyongyang

=================国家/城市/天气=================

Seoul / Kimp'O International Airport, Korea, South (RKSS) 37-33N 126-48E 18M

Oct 24, 2007 - 11:00 AM EDT / 2007.10.24 1500 UTC

from the NNW (330 degrees) at 2 MPH (2 KT) (direction variable):0

less than 1 mile:0

partly cloudy

48 F (9 C)

48 F (9 C)

100%

30.24 in. Hg (1024 hPa)

Success

WSDL

=============最新的axis2-eclipse-codegen-wizard-1.4 用法(20080806)==============

用同樣的方法生成代碼有五個:

GlobalWeather.java

GlobalWeatherLocator.java

GlobalWeatherSoap.java

GlobalWeatherSoapProxy.java

GlobalWeatherSoapStub.java

客戶端調用如下:

GlobalWeatherLocator gwl = new GlobalWeatherLocator();

GlobalWeatherSoapStub binding = (GlobalWeatherSoapStub)gwl.getGlobalWeatherSoap();

System.out.println(">>>"+binding.getCitiesByCountry("Korea"));

System.out.println(binding.getWeather("Seoul", "Korea"));

posted on 2013-04-06 10:37 youngturk 阅读(2852) 评论(1)  编辑  收藏 所属分类: Java基础 、webService

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值