3、WebService利用CXF发布和引用服务

这是第三章,前两章有关于利用JDK发布和引用服务

一、利用CXF发布服务

1.1新建工程

新建Java Project,工程名:webservice_server_cxf

在这里插入图片描述

1.2导入jar包

我用的版本是:apache-cxf-3.2.11.zip
可在官方进行下载,此处也给出百度云盘地址

官方地址:http://cxf.apache.org/download.html
百度云盘地址:https://pan.baidu.com/s/1ngJYeBf4ojeU6-f_dCMueA
提取码:7wzp

在这里插入图片描述

解压好后把apache-cxf-3.2.11/lib文件夹中所有的jar包复制在webservice_server_cxf工程下的lib文件夹(先在工程中新建lib目录)

在这里插入图片描述

1.3编写接口和实现类

创建IWeatherService接口和WeatherServiceImpl实现类,并且在接口和类上添加@WebService注解

IWeatherService
在这里插入图片描述
WeatherServiceImpl
在这里插入图片描述
IWeatherService接口:

package com.qf.webservice;

import javax.jws.WebService;

@WebService
public interface IWeatherService {
	String query(String name);
}

WeatherServiceImpl实现类:

package com.qf.webservice;

import javax.jws.WebService;

@WebService
public class WeatherServiceImpl implements IWeatherService{

	@Override
	public String query(String name) {
		return "天气晴朗"+name;
	}

}

1.4发布服务

编写Test类,然后运行代码

在这里插入图片描述
代码如下:

package com.qf.webservice.main;

import org.apache.cxf.jaxws.JaxWsServerFactoryBean;

import com.qf.webservice.IWeatherService;
import com.qf.webservice.WeatherServiceImpl;

public class Test {
	public static void main(String[] args) {
		JaxWsServerFactoryBean bean = new JaxWsServerFactoryBean();
		//1、设置地址
		bean.setAddress("http://localhost:8080/weatherService/");
		//2、接口的字节码
		bean.setServiceClass(IWeatherService.class);
		//3、实现类
		bean.setServiceBean(new WeatherServiceImpl());
		//4、进行发布
		bean.create();
		System.out.println("发布服务成功");
	}
}

1.5浏览器测试

复制http://localhost:8080/weatherService/,加上?wsdl在浏览器访问

在这里插入图片描述

二、利用CXF引入服务

2.1新建工程

新建Java Projcet,项目名为:webservice_client_cxf_1

在这里插入图片描述

2.2导入jar包

和前面一样,把jar包复制到lib目录下

在这里插入图片描述

2.3生成客户端代码

进入命令行窗口,定位到webservice_server_cxf工程下的src目录
根据 wsdl2java -d . http://localhost:8080/weatherService/?wsdl 命令生成代码
-d :生成目录的地方
. :在当前目录生成

在这里插入图片描述

回到工程,刷新工程,就可以看见生成的客户端代码

在这里插入图片描述

2.4调用方法

编写Client类,运行代码

在这里插入图片描述
代码如下:

package com.qf.webservice.client;

import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;

import com.qf.webservice.IWeatherService;

public class Client {
	public static void main(String[] args) {
		JaxWsProxyFactoryBean bean = new JaxWsProxyFactoryBean();
		//1、设置地址
		bean.setAddress("http://localhost:8080/weatherService/");
		//2、接口的字节码
		bean.setServiceClass(IWeatherService.class);
		//3、获取对象
		IWeatherService service = (IWeatherService) bean.create();
		//4、执行方法
		String query = service.query("上海");
		System.out.println(query);
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值