资讯专栏INFORMATION COLUMN

RPC框架是啥之Apache CXF一款WebService RPC框架入门教程

SolomonXie / 1846人阅读

摘要:支持相关规范和标准,包括同上。支持多种传输协议和协议绑定数据绑定。构建端还有其服务实现,接口使用注解,标明是一个远程服务接口。然后编写一个的启动程序,并运行,我想你会成功的因为我看到了下图是一种跨平台的技术协议。

本博客 猫叔的博客,转载请申明出处
学习系列

RPC框架是啥?

RPC框架是啥之Java自带RPC实现,RMI框架入门

Apache CXF一款WebService RPC框架入门教程
CXF官网:http://cxf.apache.org/

Apache CXF是一个开源的WebService RPC框架,是由Celtix和Codehaus XFire合并而成的。它可以说是一个功能齐全的集合

功能特性:

支持Web Service标准,包括SOAP(1.1、1.2)规范、WSI Basic Profile...等等我也不了解的,这里就不一一举例了。

支持JSR相关规范和标准,包括....同上。

支持多种传输协议和协议绑定(SOAP、REST/HTTP、XML)、数据绑定(JAXB2.X、Aegis、Apache XML Beans)

还是先从案例入手吧
项目源码地址:RPC_Demo,记得是项目里面的comgithubcxf

1、使用IDEA构建一个maven项目,我选择了maven-archetype-webapp构建基本框架。当然你可能还需要创建一些目录

2、我想是时候先配置好主要的pom文件了。




  4.0.0

  cxf
  comgithubcxf
  1.0-SNAPSHOT
  war

  comgithubcxf Maven Webapp
  
  http://www.example.com

  
    UTF-8
    1.7
    1.7
    3.1.7
    4.0.9.RELEASE
  

  
    
      org.springframework
      spring-context
      ${spring.version}
    
    
      org.springframework
      spring-webmvc
      ${spring.version}
    
    
      org.springframework
      spring-context-support
      ${spring.version}
    
    
      org.apache.cxf
      cxf-rt-frontend-jaxws
      ${cxf.version}
    
    
      org.apache.cxf
      cxf-rt-transports-http
      ${cxf.version}
    
    
      org.apache.cxf
      cxf-rt-transports-http-jetty
      ${cxf.version}
    
    
      junit
      junit
      4.11
      test
    
  

  
    comgithubcxf
    
      
        
          maven-clean-plugin
          3.1.0
        
        
        
          maven-resources-plugin
          3.0.2
        
        
          maven-compiler-plugin
          3.8.0
        
        
          maven-surefire-plugin
          2.22.1
        
        
          maven-war-plugin
          3.2.2
        
        
          maven-install-plugin
          2.5.2
        
        
          maven-deploy-plugin
          2.8.2
        
      
    
  

3、构建Server端还有其服务实现,接口使用@WebService注解,标明是一个WebService远程服务接口

package com.github.cxf.server;

import javax.jws.WebService;

/**
 * Create by UncleCatMySelf in 21:57 2019423 0023
 */
@WebService
public interface CxfService {

    String say(String someOne);

}

在实现类上也同样加上,并通过endpointInterface标明对接的接口实现

package com.github.cxf.server;

import javax.jws.WebService;

/**
 * Create by UncleCatMySelf in 21:57 2019423 0023
 */
@WebService(endpointInterface = "com.github.cxf.server.CxfService")
public class CxfServiceImpl implements CxfService {
    @Override
    public String say(String someOne) {
        return someOne + ",Welcome to Study!";
    }
}

4、编写对应的cxf-server.xml文件(核心点),这里我参考了官网的案例





    
    
    

        

5、然后就是我们的web.xml文件了,




  Archetype Created Web Application
  
    contextConfigLocation
    classpath:cxf-server.xml
  
  
    org.springframework.web.context.ContextLoaderListener
  
  
    CXFServer
    org.apache.cxf.transport.servlet.CXFServlet
    1
  
  
    CXFServer
    /ws/*
  

6、配置tomcat,由于我是IDEA的环境,所有我就截图给大家看看


然后启动tomcat即可,如果一起正常的话,老干妈保佑!

7、访问测试服务端,这时我们可以访问http://localhost:8080/ws/server?wsdl,如果你看到了一下的画面,就是启动成功!

8、服务端就先让它运行着,接着我们在同一个项目里面创建客户端的,这个比较简单,你可以先准备一个cxf-client.xml文件,配置对应的WebService服务接口,确定访问的地址,注意是HTTP地址哦,WebService就是采用HTTP协议通信的。





    
    
        
        
    

        

9、然后编写一个client的启动程序,并运行,我想你会成功的!因为我看到了下图!

package com.github.cxf.client;

import com.github.cxf.server.CxfService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * Create by UncleCatMySelf in 21:56 2019423 0023
 */
public class CxfClient {
    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext("classpath:cxf-client.xml");
        CxfService client = (CxfService)context.getBean("client");
        System.out.println(client.say("MySelf"));
    }
}

WebService 是一种跨平台的RPC技术协议。

公众号:Java猫说

学习交流群:728698035

现架构设计(码农)兼创业技术顾问,不羁平庸,热爱开源,杂谈程序人生与不定期干货。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/74263.html

相关文章

  • RPC框架啥之Java自带RPC实现,RMI框架入门

    摘要:让我们优先来实现一个的案例吧。为了防止被防火墙拦截,需要强制制定的通信端口,一般通过自定义一个类来实现。完美支持语言所独有的特性,不支持其他语言。使用了原生序列化,所有序列化对象必须实现接口。 本博客 猫叔的博客,转载请申明出处 学习系列 RPC框架是啥? Java自带RPC实现,RMI框架入门 首先RMI(Remote Method Invocation)是Java特有的一种RPC实...

    ZHAO_ 评论0 收藏0
  • 也来谈谈RPC

    摘要:前言,顾名思义即远程过程调用,可以说是分部式应用的基础,也是概念中的核心部分。对于来说,可以分为之间的调用与和其他平台之间的调用。和分别代表了这两种模式。 前言 RPC,顾名思义即远程过程调用,可以说是分部式WEB应用的基础,也是SOA概念中的核心部分。对于J2EE来说,可以分为JVM之间的调用与和其他平台之间的调用。前者主要是RMI,而后者则五花八门,比如Apache的Thrift...

    NSFish 评论0 收藏0
  • Java 应用一般架构

    摘要:服务提供方对外发布服务,服务需求方调用服务提供方所发布的服务。应用服务器通过统一数据访问模块访问各种数据,减轻应用程序管理诸多数据源的麻烦。 原文地址:https://blog.coding.net/blog/General-architecture-for-Java-applications 当我们架设一个系统的时候通常需要考虑到如何与其他系统交互,所以我们首先需要知道各种系统之间是...

    sunnyxd 评论0 收藏0
  • WebService就是这么简单

    摘要:它使用方式,接收和响应外部系统的某种请求。回顾我们在学习基础网络编程章节已经知道了这么一个连接了。使用指定名称的命名空间。名词简单对象访问协议作为一个基于语言的协议用于有网上传输数据。以的根元素出现。代理这么一个概念就更加清晰了。 WebService介绍 首先我们来谈一下为什么需要学习webService这样的一个技术吧.... 问题一 如果我们的网站需要提供一个天气预报这样一个需求...

    SwordFly 评论0 收藏0
  • Java系统WebService:Spring与CXF的集成

    摘要:我们再使用这样的来查看这个服务具体的定义这个用以通过查看服务也就是我们开头所说的用通用格式来描述的功能入参和返回值,使我们的调用者明白服务的使用方法具体详情可以查看我们的这个服务的页面。 WebService是什么呢?顾名思义,是Web系统提供的服务,其目的呢,往大了说:是系统实现多异构模块协同合作,服务实现SOA(Services oriented Architecture面向服务的...

    waterc 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<