jdk :1.7 eclipse 相应的webservice jar包目录 如图
新建ws 服务端 :
类依次为:接口,实现类,发布类
接口代码:
package com.xhs.ws.jaxws;
public interface WeatherInterface {
/**
* 天气查询
*/
public String queryWeather(String cityName);
}
实现类代码:
package com.xhs.ws.jaxws;
import javax.jws.WebService;
@WebService
public class WeatherInterfaceImpl implements WeatherInterface {
@Override
public String queryWeather(String cityName) {
System.out.println("from client .." + cityName);
String weather = "大热天";
return weather;
}
}
发布类代码:
package com.xhs.ws.jaxws;
import javax.xml.ws.Endpoint;
public class WeatherServer {
public static void main(String[] args) {
/**
* address 服务地址
* implementor 实现类
*/
Endpoint.publish("http://127.0.0.1:12345/weather", new WeatherInterfaceImpl());
}
}
客户端:
第一个包为生成的代码
其生成的命令为 :先进入本地src目录 :
D:\Eclipse_Space\space\ws_client\src>wsimport -s .http://127.0.0.1:12345/weather?wsdl
第二个包为客户端代码 :
package com.xhs.ws.weatherclient;
import com.xhs.ws.jaxws.WeatherInterfaceImpl;
import com.xhs.ws.jaxws.WeatherInterfaceImplService;
public class weatherClient {
public static void main(String[] args) {
// 第一步:创建服务视图,视图是从service标签name熟悉获取
WeatherInterfaceImplService weatherInterfaceImplService = new WeatherInterfaceImplService();
// 第二步:获取服务实现类,实现类是从portType标签name属性获取
WeatherInterfaceImpl WeatherInterfaceImpl = weatherInterfaceImplService.getPort(WeatherInterfaceImpl.class);
// 第三步:获取查询方法,从portType的operation属性获取
String weather = WeatherInterfaceImpl.queryWeather("长沙");
System.out.println(weather);
}
}
运行 :
from client ..长沙
大热天