一、下载cxf
地址:http://cxf.apache.org/download.html 选择适合自己的版本
二、配置环境变量
将下载好包解压,然后配置如下的环境变量
CXF_HOME = C:\tomcat\apache-cxf-3.3.4
Path = %CXF_HOME%\bin
三、CXF服务端的第一个例子
1、创建一个普通的Java项目,导入如图的jar包,将该目录下的jar都导入到项目中
2、创建一个服务接口,如下所示:
package my;
import javax.jws.WebService;
@WebService
public interface WeatherInterface
{
public String getWeather(String city);
public String[] getCities(String pro);
}
3、创建接口的实现类,如下所示:
package my;
public class WeatherInterfaceImpl implements WeatherInterface {
@Override
public String getWeather(String city) {
if("广州".equals(city))
{
return "天气晴,未来几天都是晴天。";
}
return "该城市暂未开通";
}
@Override
public String[] getCities(String pro) {
if ("广东".equals(pro))
{
return new String[]{"广州" , "深圳" , "佛山"};
}
return new String[]{"该省暂未开通"};
}
}
4、发布服务,在main方法写入如下代码,然后执行main方法
import my.WeatherInterfaceImpl;
import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
public class Main {
public static void main(String[] args) {
System.out.println("开始发布!");
//发布服务
//1、创建工厂bean
JaxWsServerFactoryBean factoryBean = new JaxWsServerFactoryBean();
//2、设置服务对象
factoryBean.setServiceBean(new WeatherInterfaceImpl());
//3、设置服务发布地址
factoryBean.setAddress("http://127.0.0.1:9090/weather");
//4、创建安服务
factoryBean.create();
System.out.println("发布成功!");
}
}
5、在浏览器访问我们的服务
在浏览器地址栏打开地址:http://127.0.0.1:9090/weather?wsdl
返回如图所示,则说明服务创建成功
到此我们的服务端已经创建成功。
四、cxf的客户端
1、创建一个普通的Java项目
2、生成客户端代码
(1)在dows窗口进入src目录,如图所示
(2)在dows窗口执行;wsdl2java -d . http://127.0.0.1:9090/weather?wsdl
然后在src目录先生成如下文件:
(3)在main方法中调用,如下代码
package my;
import java.util.List;
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
public class Main
{
public static void main(String[] args)
{
System.out.println("hello world!");
//1、创建代理工厂
JaxWsProxyFactoryBean factoryBean = new JaxWsProxyFactoryBean();
//2、设置接口
factoryBean.setServiceClass(WeatherInterface.class);
//3、设置地址
factoryBean.setAddress("http://127.0.0.1:9090/weather?wsdl");
//4、创建服务
WeatherInterface ws = factoryBean.create(WeatherInterface.class);
String str = ws.getWeather("广州");
List
System.out.println(str);
System.out.println(citis);
}
}
执行之后,出现如图结果,说明调用成功
到此,cxf发布webservice已经做好了。