Webservice------第一个入门程序
public interface IWeatherDao { public String weather(String cityName); }
import javax.jws.WebService;
@WebService public class WeatherImpl implements IWeatherDao { @Override public String weather(String cityName) { if("广州".equals(cityName)) { return cityName+" : 未来三天有雨"; }else{ return cityName+" : 未来三天晴"; } } }
public class Weather { public static void main(String[] args){ Endpoint.publish("http://127.0.0.1:1234/weather",new WeatherImpl()); } }
4.2 wsdl说明书结构
- <service>服务视图,webservice的服务结点,它包括了服务端点
- <binding>为每个服务端点定义消息格式和协议细节
- <portType>服务端点,描述 web service可被执行的操作方法,以及相关的消息,通过binding指向portType
- <message>定义一个操作(方法)的数据参数(可有多个参数)
- <types> 定义 web service 使用的全部数据类型
wsdl 说明书阅读方式
从下往上读,先找到服务视图,通过binging找到protType,找到了protType就找到了我们要调用的webservice方法。
4.4 Wsimport命令
- wsimport是jdk自带的webservice客户端工具,可以根据wsdl文档生成客户端调用代码(java代码).当然,无论服务器端的WebService是用什么语言写的,都可以生成调用webservice的客户端代码,服务端通过客户端代码调用webservice。
- wsimport.exe位于JAVA_HOME\bin目录下.
- 常用参数为:
-s<目录> - 将生成.java文件。(学习)
-d<目录> - 将生成.class文件。默认参数。
-p<生成的新包名> -将生成的类,放于指定的包下。
(wsdlurl) - http://server:port/service?wsdl,必须的参数。
- 示例:
C:/> wsimport –s . http://127.0.0.1:1234/weather?wsdl
注意:-s不能分开,-s后面有个小点
4.5案例:通过Wsimport生成客户端调用类
- 在Eclipse中创建一个空的java工程为02.jax_ws_client,此工程作为存放客户端代码。
|
- cmd命令行进入此wsimport 工程的src目录,
- 输入以下命令:
wsimport –s . http://127.0.0.1:12345/weather?wsdl
|
注:
可以通过java –version检查你当前的版本号保证是jdk1.6以上。
Jdk1.6.0_13以后的版本支持jaxws2.1。
案例:WebService 客户端编写
在上面的项目代码中
- 创建服务窗口
- 通过服务对象找到服务端点
- 调用webservice的方法
|