WebService笔记二

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Sugar_map/article/details/80784161

本文的核心内容:CXF与Spring集成、restful开发风格webService。


一、Apache CXF和Spring集成


服务提供方

- 编程思路

1. 创建Web工程

2. 导入cxf相关jar包

3. web.xml中配置webservice请求

<!-- 区分普通请求 ws请求 -->
<servlet>
    <servlet-name>cxf</servlet-name>
    <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>cxf</servlet-name>
    <url-pattern>/cxf/*</url-pattern>
</servlet-mapping>

<!-- 初始化Spring容器 -->
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:cxf-servlet.xml</param-value>
</context-param>

4. 编写服务接口+服务接口实现类

 

5. 在spring配置文件中配置发布服务信息

	<!--
	  发布基于soap协议的ws服务 wsdl
	  Endpoint.publish("http://localhost:9999/ws",服务对象);
	  网络地址:http://tomcat服务的ip:端口号/应用名/web.xml配置的cxf请求路径/ws?wsdl
	  应用:应用代码+服务代码
	 -->
        <!--  配置指定接口实现类 -->
	<jaxws:server address="/ws">
		<jaxws:serviceBean>
			<bean class="com.cxf.service.impl.JAXServiceImpl"></bean>
		</jaxws:serviceBean>
	</jaxws:server>

启动TomCat  按照网络地址即可访问wsdl。


服务调用方


- 编程思路

1. 创建spring工程

2. 导入cxf相关jar包

3. 根据WSDL文件生成客户端代码【访问对方的wsdl文件】

4. 在项目中集成客户端代码【将wsdl生成的客户端文件集成到项目中,具体作法在上篇博客中】

5. 在spring配置文件中配置调用信息


	<jaxws:client id="jaxService"
				  address="http://localhost:8088/cxf/ws?wsdl"
				  serviceClass="com.cxf.service.JAXService">
	</jaxws:client>


6.调用服务:

public class MyCXF {
	public static void main(String[] args) {
		//1.初始化spring容器
		ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:cxf-servlet.xml");
		/* 2.获取服务对象 */
		JAXService jaxService = (JAXService) applicationContext.getBean("jaxService");
		//3.客户端调用测试
		List<String> list = jaxService.getInfo("101");
		System.out.println(list);
	}
}


二:restful开发风格WebService


参考资料:http://www.ruanyifeng.com/blog/2011/09/restful.html

什么是Restful?

RESTful(Representational State Transfer 资源表现层状态转化)架构,就是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。



服务提供方

1.创建spring应用

2.导入cxf+spring相关的所有jar包

3.创建服务接口+服务接口的实现类


package com.resetful.service.impl;
import com.resetful.entity.User;
import com.resetful.service.JAXService;
import javax.jws.WebService;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;


/**
 * Created by Maps on 2018/6/23.
 */
@WebService
public class JAXServiceImpl  implements JAXService {
	
	@GET  // 请求方式必须get请求
	@Path("/{key}")
	@Produces("application/json;charset=utf-8") // 响应数据类型json
	public User getInfo(@PathParam("key") String key) {
		return new User("Jack",25,"BJ");
	}
}


4.对需要传输的实体对象配置



5.修改spring配置文件

	<!--
	配置restful风格的 webservice服务

	web.xml 中区分ws请求 + 普通请求
 -->
	<jaxrs:server address="/restful">
		<jaxrs:serviceBeans>
			<bean class="com.resetful.service.impl.JAXServiceImpl"></bean>
		</jaxrs:serviceBeans>
	</jaxrs:server>
	

6.发布服务



服务的调用方


服务的访问路径:http://tomcat服务的ip:端口号/应用名/web.xml配置的cxf请求路径/bean的address/Path路径/参数【实际是对方wsdl的地址】  



猜你喜欢

转载自blog.csdn.net/Sugar_map/article/details/80784161