java如何利用webservice得到天气预报?

danier_sky 2007-10-18 04:01:13
请问如何利用webservice得到天气预报 ,股票,列车,航班等信息?

本人初学webservice,不明白如何应用,希望大家多多帮助,举例说明
...全文
4519 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
爱凌寒 2010-10-28
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 lsj19830812 的回复:]

不能贴图简单说下哈
我用myeclipse
new - Web Service -Web Service Client

选择自己的项目
Service Definition 选择
WSDL URL:http://www.webservicex.net/globalweather.asmx?WSDL

选择Java Source 和Java package

Finish……
[/Quote]
我的MyEclipse怎么不能选择Client,而只是能新建webservice project
hty1988 2010-06-21
  • 打赏
  • 举报
回复
选择自己的项目
Service Definition 选择
WSDL URL:http://www.webservicex.net/globalweather.asmx?WSDL
这个在新建项目时,是不是只能填本地的,不能填网络上的啊,我的填了http://www.webservicex.net/globalweather.asmx?WSDL就不能进行下一步了!
wxzmmm 2009-01-31
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 lsj19830812 的回复:]
不能贴图简单说下哈
我用myeclipse
new - Web Service -Web Service Client

选择自己的项目
Service Definition 选择
WSDL URL:http://www.webservicex.net/globalweather.asmx?WSDL

选择Java Source 和Java package

Finish之后

自动在Java package生成两个文件GlobalWeatherClient和GlobalWeatherSoap
一个包net.webservicex里面有
GetCitiesByCountry
GetCitiesByCountryResponse
GetWeather …
[/Quote]

顶,再详细不过了
idilent 2007-10-22
  • 打赏
  • 举报
回复
参考
http://blog.csdn.net/idilent/archive/2007/10/22/1836694.aspx
danier_sky 2007-10-22
  • 打赏
  • 举报
回复
唉~~~谁能教教我呀,都等了许久
没有个答案,继续等...
danier_sky 2007-10-22
  • 打赏
  • 举报
回复
up
idilent 2007-10-22
  • 打赏
  • 举报
回复
你用的axis版本是多少?

而且在你的代码中

try
{
String endpoint ="http://www.wopos.com/webservice/Weather.asmx?wsdl";
Service service = new Service();
Call call = (Call) service.createCall();

call.setTargetEndpointAddress( new java.net.URL(endpoint) );
call.setOperationName(new QName("http://tempuri.org/", "getWeather")); //肯定是错的。

call.setUseSOAPAction(true);
call.setSOAPActionURI("http://tempuri.org/getWeather");//肯定是错的。

String ret = (String) call.invoke( new Object[] { "武汉" } );//用拼音。

System.out.println("Sent ’Hello!’, got ’" + ret + "’"); //sent的是wuhuan
} catch (Exception e) {
System.out.println(e.toString());
}
danier_sky 2007-10-22
  • 打赏
  • 举报
回复
call.setOperationName(new QName("http://tempuri.org/", "getWeather")); //肯定是错的。

请问QName()中的两个参数是什么意思?

call.setSOAPActionURI("http://tempuri.org/getWeather");//肯定是错的。

这句有又什么意思?
chh_zhao 2007-10-20
  • 打赏
  • 举报
回复
java 群: 45836394
chyx413332087 2007-10-20
  • 打赏
  • 举报
回复
up
idilent 2007-10-19
  • 打赏
  • 举报
回复
这个是getCitiesByCountry返回的数据,输入的国家名字china。

<NewDataSet>
<Table>
<Country>China</Country>
<City>Beijing</City>
</Table>
<Table>
<Country>China</Country>
<City>Hohhot</City>
</Table>
<Table>
<Country>China</Country>
<City>Tianjin / Zhangguizhu</City>
</Table>
<Table>
<Country>China</Country>
<City>Taiyuan</City>
</Table>
<Table>
<Country>China</Country>
<City>Changsha</City>
</Table>
<Table>
<Country>China</Country>
<City>Guangzhou</City>
</Table>
<Table>
<Country>China</Country>
<City>Haikou</City>
</Table>
<Table>
<Country>China</Country>
<City>Guilin</City>
</Table>
<Table>
<Country>China</Country>
<City>Nanning</City>
</Table>
<Table>
<Country>China</Country>
<City>Shantou</City>
</Table>
<Table>
<Country>China</Country>
<City>Shenzhen</City>
</Table>
<Table>
<Country>China</Country>
<City>Zhanjiang</City>
</Table>
<Table>
<Country>China</Country>
<City>Zhengzhou</City>
</Table>
<Table>
<Country>China</Country>
<City>Wuhan</City>
</Table>
<Table>
<Country>China</Country>
<City>Yinchuan</City>
</Table>
<Table>
<Country>China</Country>
<City>Jiuquan</City>
</Table>
<Table>
<Country>China</Country>
<City>Xi'An</City>
</Table>
<Table>
<Country>China</Country>
<City>Xining</City>
</Table>
<Table>
<Country>China</Country>
<City>Yan An</City>
</Table>
<Table>
<Country>China</Country>
<City>Kunming</City>
</Table>
<Table>
<Country>China</Country>
<City>Xiamen</City>
</Table>
<Table>
<Country>China</Country>
<City>Nanchang</City>
</Table>
<Table>
<Country>China</Country>
<City>Fuzhou</City>
</Table>
<Table>
<Country>China</Country>
<City>Ganzhou</City>
</Table>
<Table>
<Country>China</Country>
<City>Hangzhou</City>
</Table>
<Table>
<Country>China</Country>
<City>Nanjing</City>
</Table>
<Table>
<Country>China</Country>
<City>Hefei</City>
</Table>
<Table>
<Country>China</Country>
<City>Qingdao</City>
</Table>
<Table>
<Country>China</Country>
<City>Shanghai / Hongqiao</City>
</Table>
<Table>
<Country>China</Country>
<City>Jinan</City>
</Table>
<Table>
<Country>China</Country>
<City>Chongqing</City>
</Table>
<Table>
<Country>China</Country>
<City>Guiyang</City>
</Table>
<Table>
<Country>China</Country>
<City>Lhasa</City>
</Table>
<Table>
<Country>China</Country>
<City>Chengdu</City>
</Table>
<Table>
<Country>China</Country>
<City>Hami</City>
</Table>
<Table>
<Country>China</Country>
<City>Kashi</City>
</Table>
<Table>
<Country>China</Country>
<City>Hotan</City>
</Table>
<Table>
<Country>China</Country>
<City>Urum-Qi / Diwopu</City>
</Table>
<Table>
<Country>China</Country>
<City>Yining</City>
</Table>
<Table>
<Country>China</Country>
<City>Changchun</City>
</Table>
<Table>
<Country>China</Country>
<City>Qiqihar</City>
</Table>
<Table>
<Country>China</Country>
<City>Dalian</City>
</Table>
</NewDataSet>
idilent 2007-10-19
  • 打赏
  • 举报
回复
生成了一个,不过代码超级复杂。
danier_sky 2007-10-19
  • 打赏
  • 举报
回复
嗯啊,我现在就想用axis
try
{
String endpoint ="http://www.wopos.com/webservice/Weather.asmx?wsdl";
Service service = new Service();
Call call = (Call) service.createCall();

call.setTargetEndpointAddress( new java.net.URL(endpoint) );
call.setOperationName(new QName("http://tempuri.org/", "getWeather"));

call.setUseSOAPAction(true);
call.setSOAPActionURI("http://tempuri.org/getWeather");

String ret = (String) call.invoke( new Object[] { "武汉" } );

System.out.println("Sent ’Hello!’, got ’" + ret + "’");
} catch (Exception e) {
System.out.println(e.toString());
}
结果报错了:
System.Web.Services.Protocols.SoapException: 服务器无法处理请求。 ---> System.NullReferenceException: 未将对象引用设置到对象的实例。
在 Weather.getWeather(String mCity)
--- 内部异常堆栈跟踪的结尾 ---

不知哪里错了,是否漏掉了什么...
idilent 2007-10-19
  • 打赏
  • 举报
回复
可以用axis自动生成客户端,具体怎么写找Apache的资料。最近打算写一点儿这方面的东西。
大河V5 2007-10-19
  • 打赏
  • 举报
回复
UP
danier_sky 2007-10-19
  • 打赏
  • 举报
回复
我找了个,大家看看,要如何应用?
http://www.webservicex.net/globalweather.asmx?WSDL

danier_sky 2007-10-19
  • 打赏
  • 举报
回复
lsj19830812
加我QQ:617736906
lsj19830812 2007-10-19
  • 打赏
  • 举报
回复
不能贴图简单说下哈
我用myeclipse
new - Web Service -Web Service Client

选择自己的项目
Service Definition 选择
WSDL URL:http://www.webservicex.net/globalweather.asmx?WSDL

选择Java Source 和Java package

Finish之后

自动在Java package生成两个文件GlobalWeatherClient和GlobalWeatherSoap
一个包net.webservicex里面有
GetCitiesByCountry
GetCitiesByCountryResponse
GetWeather
GetWeatherResponse
ObjectFactory
package-info
几个类


打开GlobalWeatherClient类在 main 里添加 System.out.println(service.getCitiesByCountry("China"));
运行就可以从webservice获得China的所有城市,其他的获得某个城市天气预报函数也都通过GlobalWeatherSoap中相应函数调用就可以了.

返回的数据就是xml格式的,剩下的工作就是通过DOM解析xml显示到页面上了,跟webservice没有关系了

<NewDataSet>
<Table>
<Country>China</Country>
<City>Beijing</City>
</Table>
<Table>
<Country>China</Country>
<City>Hohhot</City>
</Table>
<Table>
<Country>China</Country>
<City>Tianjin / Zhangguizhu</City>
</Table>
<Table>
<Country>China</Country>
<City>Taiyuan</City>
</Table>
<Table>
<Country>China</Country>
<City>Changsha</City>
</Table>
<Table>
<Country>China</Country>
<City>Guangzhou</City>
</Table>
<Table>
<Country>China</Country>
<City>Haikou</City>
</Table>
<Table>
<Country>China</Country>
<City>Guilin</City>
</Table>
<Table>
<Country>China</Country>
<City>Nanning</City>
</Table>
<Table>
<Country>China</Country>
<City>Shantou</City>
</Table>
<Table>
<Country>China</Country>
<City>Shenzhen</City>
</Table>
<Table>
<Country>China</Country>
<City>Zhanjiang</City>
</Table>
<Table>
<Country>China</Country>
<City>Zhengzhou</City>
</Table>
<Table>
<Country>China</Country>
<City>Wuhan</City>
</Table>
<Table>
<Country>China</Country>
<City>Yinchuan</City>
</Table>
<Table>
<Country>China</Country>
<City>Jiuquan</City>
</Table>
<Table>
<Country>China</Country>
<City>Xi'An</City>
</Table>
<Table>
<Country>China</Country>
<City>Xining</City>
</Table>
<Table>
<Country>China</Country>
<City>Yan An</City>
</Table>
<Table>
<Country>China</Country>
<City>Kunming</City>
</Table>
<Table>
<Country>China</Country>
<City>Xiamen</City>
</Table>
<Table>
<Country>China</Country>
<City>Nanchang</City>
</Table>
<Table>
<Country>China</Country>
<City>Fuzhou</City>
</Table>
<Table>
<Country>China</Country>
<City>Ganzhou</City>
</Table>
<Table>
<Country>China</Country>
<City>Hangzhou</City>
</Table>
<Table>
<Country>China</Country>
<City>Nanjing</City>
</Table>
<Table>
<Country>China</Country>
<City>Hefei</City>
</Table>
<Table>
<Country>China</Country>
<City>Qingdao</City>
</Table>
<Table>
<Country>China</Country>
<City>Shanghai / Hongqiao</City>
</Table>
<Table>
<Country>China</Country>
<City>Jinan</City>
</Table>
<Table>
<Country>China</Country>
<City>Chongqing</City>
</Table>
<Table>
<Country>China</Country>
<City>Guiyang</City>
</Table>
<Table>
<Country>China</Country>
<City>Lhasa</City>
</Table>
<Table>
<Country>China</Country>
<City>Chengdu</City>
</Table>
<Table>
<Country>China</Country>
<City>Hami</City>
</Table>
<Table>
<Country>China</Country>
<City>Kashi</City>
</Table>
<Table>
<Country>China</Country>
<City>Hotan</City>
</Table>
<Table>
<Country>China</Country>
<City>Urum-Qi / Diwopu</City>
</Table>
<Table>
<Country>China</Country>
<City>Yining</City>
</Table>
<Table>
<Country>China</Country>
<City>Changchun</City>
</Table>
<Table>
<Country>China</Country>
<City>Qiqihar</City>
</Table>
<Table>
<Country>China</Country>
<City>Dalian</City>
</Table>
</NewDataSet>

danier_sky 2007-10-19
  • 打赏
  • 举报
回复
netBeans 是什么?
ytuwlg 2007-10-19
  • 打赏
  • 举报
回复
找到wsdl地址后:
可以使用netBeans 生成客户端存根
然后在程序中调用存根比较方便
加载更多回复(5)

81,114

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧