WebService-服务端简单测试-02

Web service之 CXF详解

CXF是建立在SOAP协议上的一个Web service框架。什么是SOAP协议,简单来说就是两个不同项目(开发语言不同等)通过xml文件来描述要传输的东西,然后通过HTTP协议传输,接收方把收到的xml解析成需要的对象使用,返回的时候又用xml封装又通过http协议传输,如此就是SOAP协议。而CXF就是两个项目之间为了提供服务,而开发的一个开源框架,使用CXF框架可以快速搭建web service。CXF就是将项目中暴露出来的接口(服务)包装起来,成为wsdl,使用方通过wsdl来调用这些服务。

cxf依赖包

<!-- 需要添加Spring相关最少jar包 -->
 <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>4.3.21.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-beans</artifactId>
    <version>4.3.21.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>4.3.21.RELEASE</version>
</dependency>
<!-- 添加CXF相关jar包 -->
<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-core</artifactId>
    <version>3.1.5</version>
</dependency>
<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-rt-frontend-jaxws</artifactId>
    <version>3.1.5</version>
</dependency>
<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-rt-transports-http</artifactId>
    <version>3.1.5</version>
</dependency> 

修改web.xml文件

<servlet> 
    <servlet-name>CXFServlet</servlet-name> 
    <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class> 
</servlet> 
<!-- 这个设置很重要,那么我们的webservice的地址就是http://localhost:8080/yourProgramName/webservice/impl -->
<servlet-mapping> 
    <servlet-name>CXFServlet</servlet-name> 
    <url-pattern>/webservice/*</url-pattern> 
</servlet-mapping>

在spring配置文件中引入cxf自带的xml文件

<import resource="classpath:META-INF/cxf/cxf.xml"/><!-- 在 cxf-rt-core.jar中  -->
<import resource="classpath:META-INF/cxf/cxf-servlet.xml"/><!-- 在 cxf-rt-transports-http.jar中  -->

定义接口及实现类

定义一个接口与实现类,并且该接口与类需要放在一个包中,且需要在类上标明@WebService注解


@WebService
public interface Hello {
    String save(@WebParam(name = "name") String name,@WebParam(name = "age") Integer age,@WebParam(name = "sex") Integer sex);
}


@WebService
@Component("add")
public class HelloImpl implements Hello{

    public String save(String name,Integer age,Integer sex){
        System.out.println(name+"  "+age+"  "+sex);
        return name+age+sex;
    }
}

将实现类交给Spring生成和管理

在实现类中添加 “@Component” 注解,并且修改Spring配置文件,让Spring扫描后管理我们写好的实现类

<!-- 扫描包中的component -->
<context:component-scan base-package="com.mr" />

修改Spring配置文件,暴露webservice的endpoint

在实现类上添加@Component(" ") 相当于是bean标签创建对象
<jaxws:endpoint  implementor="#add"  address="/user"/>

访问

通过IP:端口号/项目名/webservice(web.xml中定义的)路径访问即可

测试服务端是否可以被调用到使用SoapUI
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
输出结果表示测试成功,可以被客户端使用。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值