步骤1.创建服务
1.创建一个接口,queryWeather为服务方法。
package cn.yxl.jaxws.ws; /** * WeBservise服务端 接口 * */ public interface WeatherInterface { public String queryWeather(String cityName); }
2.编写实现类,此类作为webservice提供服务类。
package cn.yxl.jaxws.ws;
import javax.jws.WebService;
/**
* 创建webService服务
*
*/
@WebService
public class WeathInterfaceImpl implements WeatherInterface {
@Override
public String queryWeather(String cityName) {
System.out.println("from "+cityName);
String weather="晴";
return weather;
}
}
注意:
SEI实现类中至少要有一个非静态的公开方法需要作为webservice服务方法。
public class 上边要加上@WebService 。
2.发布服务
package cn.yxl.jaxws.ws;
import javax.xml.ws.Endpoint;
public class WebService {
public static void main(String[] args) {
// 发布服务
// 参数解释
//参数1:服务地址
//参数2:服务实现类
Endpoint.publish("http://127.0.0.1:12345/weather",new WeathInterfaceImpl());
}
}
注意:启动项目,发布服务。停止项目时,服务也停止。
步骤3:测试服务
Webservice发布成功,通过wsdl查看webservice发布的正确性
测试方法1:通过网页测试
在地址栏输入(注意后面的参数?wsdl)
http://127.0.0.1:1234/weather
Wsdl不是webService,只是获取一个用于描述WebService的说明文件。
Wsdl- WebServiceDescriptionLanguage,是以XML文件形式来描述WebService的”说明书”,有了说明书,我们才可以知道如何使用或是调用这个服务.
测试方法2:通过客户端程序测试
客户端测试是编写客户端程序,然后调用服务接口。
第一步:通过wsimport命令 根据服务地址生成客户端调用的代码。
1.首先创建客户端测试项目
2.通过cmd命令。根据服务地址,生成一些java代码,以便测试程序调用。
返回到编译器刷新测试项目,会多出一些文件。这些文件是刚才通过wsimport命令生成的调用代码文件。
这些文件可以和WSDL描述文件里的标签进行对应。
第二步:根据WSDL说明书调用WebService服务。