您的位置:首页 > 编程语言 > Java开发

WebService之jax-ws入门

2017-10-27 23:38 211 查看
这是一个入门程序,只求通俗易懂,不求深入。

1、创建一个JAVA项目,并创建一个WeatherService的接口

package com.ckinghan.webService.jaxws;

public interface WeatherService {

/**
* 根据城市获取天气信息
* @param city
* @return
*/
public String getWeatherInfo(String city);
}


2、创建WeatherService接口的实现类

package com.ckinghan.webService.jaxws.impl;

import javax.jws.WebService;

import com.ckinghan.webService.jaxws.WeatherService;

/**
* 注意,这里的@WebService必须加,是要告诉系统这是个WebService的程序
*/
@WebService
public class WeatherServiceImpl implements WeatherService{

/**
* 实现接口中的方法
*/
@Override
public String getWeatherInfo(String city) {
System.out.println("接收到来自客户端的请求数据:"+city);
return "这是个晴天";
}

}


3、创建CreateServiceTest测试类,将WebService程序进行发布,并执行。

package com.ckinghan.webService.jaxws.test;

import javax.xml.ws.Endpoint;

import com.ckinghan.webService.jaxws.impl.WeatherServiceImpl;

public class CreateServiceTest {

/**
* 测试发布
*/
public static void main(String[] args) {
//使用Endpoint进行发布,参数一:访问地址。参数二:发布的服务
Endpoint.publish("http://localhost:12306/weather", new WeatherServiceImpl());

}

}


4、执行后,可以将发布的地址复制一下粘贴到浏览器上,看是否发布成功,如果发布成功,会出现如下界面:



5、点击右下角的连接,(http://localhost:12306/weather?wsdl),将会出现如下界面:



6、将Client客户端代码进行导出。操作方式

在C盘创建一个文件夹:webService

打开CMD窗口,输入: cd c:/ 进入C盘根目录

输入cd webService 进入webService文件夹

输入 wsimport -s . http://localhost:12306/weather?wsdl

回车,生成代码。(参数说明: -s :生成代码 . :在当前目录 http://localhost:12306/weather?wsdl 生成代码的参考来源)。

常见出错问题:连接地址写错,少加了?wsdl参数

环境变量配置不正确,如果可以使用javac -version命令正确输出,就可以正常导出数据。



7、将生成 的代码包括文件夹复制到 新创建的一个JAVA项目(webServieClient)中的src目录下。复制过后如下:



8、创建测试类ClientTest,并执行,查看效果:

package com.ckinghan.webservice.jaxws.impl;

public class ClientTest {

/**
* 测试WebService是否可以正常访问
*/
public static void main(String[] args) {
//创建WebServer服务发布的对象
WeatherServiceImplService weatherServiceImplService = new WeatherServiceImplService();
//通过WebServer的对象获取Port,参数是wsdl文件中指定的类
WeatherServiceImpl port = weatherServiceImplService.getPort(WeatherServiceImpl.class);
//远程调用WebService服务器的接口,获取数据
String weatherInfo = port.getWeatherInfo("河南");
//打印获取 的数据
System.out.println("服务端回复:"+weatherInfo);
}

}


9、执行后效果如下:





10、测试完成。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息