`

WebService之CXF实现

阅读更多
1. WebService之CXF简介

CXF官网:http://cxf.apache.org/

WebService一种跨平台,跨语言的规范,用于不同平台,不同语言开发的应用之间的交互。

CXF是java领域主流的WebService实现框架。


2. 使用CXF开发应用

新建项目WS_Server
New
-> maven project
-> Create a simple project
    Group Id:com.andrew.webservice
    Artfact Id:WS_Server
    Version:0.0.1-SNAPSHOT
    Packaging:jar


2.1) 使用CXF开发WebService服务器端接口

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.andrew.webservice</groupId>
  <artifactId>WS_Server</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  
  <dependencies>
      <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-jetty</artifactId>
        <version>3.1.5</version>
    </dependency>
  </dependencies>
</project>

HelloWorld.java

package com.andrew.webservice;

import javax.jws.WebService;

@WebService
public interface HelloWorld {
    public String say(String str);
}

HelloWorldImpl.java

package com.andrew.webservice.impl;

import javax.jws.WebService;

import com.andrew.webservice.HelloWorld;

@WebService
public class HelloWorldImpl implements HelloWorld {
    public String say(String str) {
        return "Hello " + str;
    }
}

Server.java

package com.andrew.server;

import javax.xml.ws.Endpoint;

import org.apache.cxf.jaxws.JaxWsServerFactoryBean;

import com.andrew.webservice.HelloWorld;
import com.andrew.webservice.impl.HelloWorldImpl;

public class Server {
    public static void main(String[] args) {
        System.out.println("web service start");
        HelloWorld implementor = new HelloWorldImpl();
        String address = "http://192.168.18.2/helloWorld";
        // 1. 使用JDK实现
        // Endpoint.publish(address, implementor);
        // 2. 使用CXF实现
        JaxWsServerFactoryBean factoryBean = new JaxWsServerFactoryBean();
        factoryBean.setAddress(address); // 设置暴露地址
        factoryBean.setServiceClass(HelloWorld.class); // 接口类
        factoryBean.setServiceBean(implementor); // 设置实现类
        factoryBean.create();
        System.out.println("web service started");
    }
}

执行结果:
web service start
log…
web service started
页面调用:
http://192.168.18.2/helloWorld?wsdl


wsdl是WebServicesDescriptionLanguage的缩写,是一个用来描述Web服务和说明如何与Web服务通信的XML语言。
WSDL是WebService的描述语言,用于描述WebService的服务,接口绑定等,为用户提供详细的接口说明书。

wsdl:types就是定义了一些变量
wsdl:message相当于定义方法
wsdl:portType相当与调用与返回
客户端通过这个url请求,获得wsdl规范的xml文档片段信息,通过SOAP(SimpleObjectAccessProtocol)即简单对象访问协议,来实现客户端,服务器端消息交互,SOAP使用XML消息调用远程方法;交互的媒介就是xml,具体交互内容根据wsdl文档描述来。


2.2) 使用CXF开发WebService客户端

CXF二进制包下载地址:http://cxf.apache.org/download.html

使用wsdl2java工具
E:\Program Files\apache-cxf-3.1.5\bin\wadl2java

配置环境变量:
Path:E:\Program Files\apache-cxf-3.1.5\bin


新建项目WS_Client
New
-> maven project
-> Create a simple project
    Group Id:com.andrew.webservice
    Artfact Id:WS_Client
    Version:0.0.1-SNAPSHOT
    Packaging:jar

生成需要的webservice客户端代码
生成代码的路径E:\studyWEBSERVICECXF\WS_Client\src\main\java
1) cmd
2) cd E:\studyWEBSERVICECXF\WS_Client\src\main\java
3) wsdl2java http://192.168.18.2/helloWorld?wsdl
会在WS_Client下生成代码
4) 启动WS_Server


Client.java

package com.andrew.client;

import com.andrew.webservice.HelloWorld;
import com.andrew.webservice.HelloWorldService;

public class Client {
    public static void main(String[] args) {
        HelloWorldService service = new HelloWorldService();
        HelloWorld helloWorld = service.getHelloWorldPort();
        System.out.println(helloWorld.say("andrew"));
    }
}

Hello andrew
分享到:
评论

相关推荐

    CXF实现webservice

    CXF允许开发者选择这两种方式之一来实现Web服务。 #### 2.1 SOAP Web服务 SOAP是一种基于XML的消息传递协议,适用于需要强类型和事务处理的复杂环境。CXF支持基于JAX-WS的标准API来创建SOAP服务,开发者可以使用...

    webService(基于cxf)的完整例子

    总结来说,基于CXF的Web服务示例提供了一个完整的流程,从创建服务接口、实现服务逻辑、配置服务到测试服务,涵盖了Web服务开发的各个方面。通过学习这个例子,开发者可以掌握CXF的基本使用方法,进一步拓展到更复杂...

    简单的webservice+Cxf+Spring数据对接实例以及jar.rar

    简单的webservice+Cxf+Spring数据对接实例以及jar.rar简单的webservice+Cxf+Spring数据对接实例以及jar.rar简单的webservice+Cxf+Spring数据对接实例以及jar.rar简单的webservice+Cxf+Spring数据对接实例以及jar.rar...

    WebService CXF 对象传递 附

    **WebService CXF 对象传递详解** 在Web服务领域,CXF是一个非常重要的开源框架,它允许开发者创建和消费各种Web服务。CXF支持SOAP、RESTful等多种通信模式,并且能够处理复杂的对象传递,使得Web服务的数据交换...

    WebService的CXF实现

    总结,WebService的CXF实现是Java世界中实现Web服务的重要方式,其强大的功能和易用性使得开发者能够高效地构建和集成跨平台的应用。了解和掌握CXF,将有助于提升你在分布式系统开发中的技能和效率。

    WebService_CXF实现及ANT

    你可以通过实现`org.apache.cxf.interceptor.Fault`和`org.apache.cxf.interceptor.MessageObserver`接口来自定义拦截器,并在CXF服务配置中进行添加。 2. CXF WebService中传递复杂类型对象: CXF允许在Web服务中...

    利用cxf实现webservice

    【标题】:“利用CXF实现WebService” 在Java世界中,CXF是一个强大的开源框架,用于构建和开发Web服务。它支持多种Web服务标准,包括SOAP、RESTful API以及WS-*协议栈。CXF使得开发者能够方便地创建和消费Web服务...

    WebService之CXF开发指南.doc

    WebService之CXF开发指南 该资源总结了WebService之CXF开发指南,涵盖了WebService的基本概念、SOA架构、CXF框架的介绍、CXF的功能特性、安装和目录结构等内容。 WebService基本概念 WebService是一个软件接口,...

    webservice-cxf-spring-jar.zip

    【标题】"webservice-cxf-spring-jar.zip" 是一个包含了使用Apache CXF与Spring框架集成开发Web服务的Java库集合。这个压缩包提供了一整套必要的JAR文件,以便于开发者在他们的项目中快速搭建和运行基于CXF的Web服务...

    WebService_CXF_x509

    【WebService_CXF_x509】是一个关于使用Apache CXF框架实现基于X.509数字证书的安全Web服务的主题。Apache CXF是一个流行的开源Java框架,用于构建和部署Web服务。X.509是一种标准格式,用于表示公钥基础设施(PKI)...

    SpringBoot开发WebService之CXF示例

    在SpringBoot应用启动后,CXF会自动扫描并发布实现的Web服务。可以通过在`@WebService`注解上设置`serviceName`和`targetNamespace`来控制服务的元数据。默认情况下,服务将暴露在`/services/{interfaceName}`路径...

    springBoot完整整合WebService框架CXF示例

    接口通常使用JAX-WS标准的`@WebService`注解标记,实现类则通过`@WebService(serviceName = "...")`注解。然后,通过CXF的`JaxWsServerFactoryBean`,我们可以将服务注册到CXF服务器上。 4. **服务调用**:在服务...

    webservice_cxf Demo

    总结来说,"webservice_cxf Demo" 是一个学习 Apache CXF 开发 Web 服务的实践项目,涵盖了从服务定义、实现、部署到客户端调用的全过程。通过这个示例,开发者可以深入理解 CXF 的工作原理和使用方法,为构建自己的...

    SpringBoot+Mybatis+CXF框架,实现Restful api与 WebService api接口的大实验

    SpringBoot+Mybatis+CXF框架,实现Restful api与 WebService api接口的大实验 本实验的主要目标是使用SpringBoot、Mybatis和CXF框架来实现Restful API和WebService API接口的大实验。下面是实验的详细介绍: 标题...

    webservice之cxf实例

    【描述】:在这个“webservice之cxf实例”中,我们将深入学习Apache CXF框架在实现Web服务中的具体操作。首先,我们需要了解CXF的基本概念,它作为一个服务端和客户端的栈,支持多种协议和标准,包括SOAP、RESTful、...

    WebService之CXF开发指南

    ### WebService之CXF开发指南 #### 一、概述 WebService技术已经成为企业级应用中不可或缺的一部分,它使得不同系统之间能够以标准化的方式进行交互。在众多WebService框架中,Apache CXF因其灵活、强大的功能和...

    WebService之CXF(一、服务端的使用)

    **WebService之CXF服务端使用详解** 在信息技术领域,WebService是一种基于开放标准的,用于不同系统间进行数据交换的技术。Apache CXF是一个流行的开源框架,它使得开发和部署Web服务变得简单而高效。本篇文章将...

    webservice使用cxf的实例

    总的来说,"webservice使用cxf的实例"这个主题涵盖了从基础理论到实际操作的各个环节,包括CXF框架的使用、Web服务的创建与部署、客户端调用、数据绑定、安全性和Spring集成等多个方面。通过学习和实践,开发者可以...

    WebService之CXF开发指南.rar

    **WebService之CXF开发指南** 在IT行业中,WebService是一种基于开放标准(如WSDL、SOAP和UDDI)的通信协议,它允许不同系统之间进行互操作性交互。CXF,全称Apache CXF,是一个开源的Java框架,用于构建和开发高...

    WebService_CXF范例.

    在Java领域,有许多用于实现WebService的框架,如AXIS、XFire以及CXF。其中,CXF因其高性能、可扩展性和用户友好性而受到广泛关注。 Apache CXF是由ObjectWeb Celtix和CodeHaus XFire合并而成的项目,这两个开源...

Global site tag (gtag.js) - Google Analytics