SSM(四)WebService 入门详解

简介: webservice这个不知道大家首次接触的时候是怎么理解的,反正我记得我当时第一次接触这个东西的时候以为又是一个XX框架,觉得还挺高大上。然而这一切在之后我使用过后才发现这些全都是YY。那么webservice到底是什么呢,根据我自己的理解:简单来说就像是一个公开的接口,其他系统不管你是用什么语言来编写的都可以调用这个接口,并可以返回相应的数据给你。就像是现在很多的天气应用,他们肯定不会自己去搞一个气象局之类的部门去监测天气,大多都是直接调用一个天气接口,然后返回天气数据,相关应用就可以将这些信息展示给用户了。

前言


webservice这个不知道大家首次接触的时候是怎么理解的,反正我记得我当时第一次接触这个东西的时候以为又是一个XX框架,觉得还挺高大上。然而这一切在之后我使用过后才发现这些全都是YY。 那么webservice到底是什么呢,根据我自己的理解:简单来说就像是一个公开的接口,其他系统不管你是用什么语言来编写的都可以调用这个接口,并可以返回相应的数据给你。就像是现在很多的天气应用,他们肯定不会自己去搞一个气象局之类的部门去监测天气,大多都是直接调用一个天气接口,然后返回天气数据,相关应用就可以将这些信息展示给用户了。 通常来说发布这类接口的应用都是用一两种语言来编写即可,但是调用这个接口应用可能会是各种语言来编写的,为了满足这样的需求webservice出现了。


简单来说webservice就是为了满足以上需求而定义出来的规范。


Spring整合CXF


在Java中实现webservice有多种方法,java本身在jdk1.7之后也对webservice有了默认的实现,但是在我们实际开发中一般还是会使用框架来,比如这里所提到的CXF就有着广泛的应用。 废话我就不多说了,直接讲Spring整合CXF,毕竟现在的JavaEE开发是离不开Spring了。 该项目还是基于之前的SSM进行开发的。


加入maven依赖


第一步肯定是要加入maven依赖:


<
    org.apache.cxf
    cxf-rt-frontend-jaxws
    3.1.6
    org.apache.cxf
    cxf-core
    3.1.6
    org.apache.cxf
    cxf-rt-transports-http
    3.1.6

web.xml配置


接着我们需要配置一个CXF的servlet:


CXFServlet
    org.apache.cxf.transport.servlet.CXFServlet
    CXFServlet
    /webservice/*


之后只要我们访问webservice/*这个地址就会进入CXF的servlet中。


整合Spring配置



接下来是最重要的一部,用Spring整合CXF: 在这之前我有新建一个CXF的包,如下

图:



这里有两个主要类


  • HelloWorld接口。


  • 实现HelloWorld接口的HelloWorldImpl类。 代码如下: HelloWorld.java


package com.crossoverJie.cxf;
import javax.jws.WebService;
public interface HelloWorld {
   public String say(String str);
   }


其中就只定义了一个简单的say()方法。 HelloWorldImpl.java


package com.crossoverJie.cxf.impl;
import com.crossoverJie.cxf.HelloWorld;
import org.springframework.stereotype.Component;
import javax.jws.WebService;
("helloWorld")
public class HelloWorldImpl implements HelloWorld {
  public String say(String str) {
     return "Hello"+str;
 }
 }


这里就是对say()方法的简单实现。 接下来就是整合Spring了,由于需要使用到CXF的标签,所以我们需要添加额外的命名路径如下:


xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:p="http://www.springframework.org/schema/p"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:jee="http://www.springframework.org/schema/jee"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:jaxws="http://cxf.apache.org/jaxws"
       xsi:schemaLocation="
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
        http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-4.0.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
        http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">
            implementor="#helloWorld"
            address="/HelloWorld"


更加具体的配置可以查看官方给出的文档:cxf.apache.org/docs/how-do…

#helloWorld指的是我们在HelloWorldImpl类中所自定义的名字,/HelloWorld则是我们需要访问的地址。 之后我们运行项目输入该地址:


http://127.0.0.1:8080/ssm/webservice/HelloWorld?wsdl如果出现如下界面:



则说明我们的webservice发布成功了。 接下来只需要通过客户端调用这个接口即可获得返回结果了。


总结


以上就是一个简单的webservice入门实例,更多的关于CXF拦截器,客户端调用就没有做过多介绍,后续有时间的话再接着更新。


项目地址:github.com/crossoverJi…个人博客地址:crossoverjie.top。 GitHub地址:github.com/crossoverJi…


相关文章
|
Java 数据库连接 Maven
ssm框架入门介绍
ssm框架入门介绍
193 0
java202304java学习笔记第六十天-ssm-spring配置文件-原始注解入门操作1
java202304java学习笔记第六十天-ssm-spring配置文件-原始注解入门操作1
69 0
java202304java学习笔记第五十九天员工管理-ssm-spring代码入门化
java202304java学习笔记第五十九天员工管理-ssm-spring代码入门化
55 0
java202304java学习笔记第六十天-ssm-spring配置文件-原始注解入门操作2
java202304java学习笔记第六十天-ssm-spring配置文件-原始注解入门操作2
68 0
|
C#
C#面向服务WebService从入门到精通
《C#面向服务WebService从入门到精通》包含以下两个部分: 一、《C#远程调用技术WebService修炼手册【基础篇】》本次分享课您将学习到以下干货知识点:1)、WebService技术调用原理图。
1905 0
|
Java Spring 数据格式
SSM-Spring-03:Spring中AOP的初窥和入门小案例
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥-------------     AOP:面向切面编程   AOP的主要作用:是为了程序员更好的关注"业务",专心"做事"     加上双引号的意思:所谓业务,是指他的核心,各行业中需要处理的核心事务,核心啊     ...
1409 0
|
Java Spring 容器
SSM-Spring-01:Spring的概念+入门案例
  ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥-------------     Spring   提起Spring,就会想到企业级框架这个词   企业级系统:     1.
1237 0
|
XML 数据格式 网络架构