`
zhaoyl
  • 浏览: 218128 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

CXF中使用Simple FrontEnd Project方式发布并获取webservice服务

阅读更多

/**

**QQ:252574345

**MSN:lele_love_lomboz@hotmail.com

*/

 

使用CXF Simple FrontEnd Project,不需要在业务接口中设置具体的协议、@Web Service、@Web Method,仅仅需要创建与具体webservice技术无关的业务接口就可以了(真有点像SCA了,呵呵不恰当的对比)。利用代理类进行发布服务和获取服务

(工程文件附后下载)

 

1。业务接口

 

package demo.zhaoyl.server;

/**
 * 业务接口
 * 与wsdl first project 、java first project方式不同的是
 * 这个业务接口仅仅是普通的java interface
 * @author zhaoyl
 *
 */
public interface HelloWorld
{
   
    String sayHi(String name);

}

 

2。业务接口实现类

 

package demo.zhaoyl.server;

/**
 * 业务接口实现类
 * @author zhaoyl
 *
 */
public class HelloWorldImpl implements HelloWorld {

 /**
  * 向客户端返回一个名字
  */
    public String sayHi(String name) {
        return "Hello " + name;
    }
}

 

 

3。服务端

 

package demo.zhaoyl.server;

import org.apache.cxf.frontend.ServerFactoryBean;

/**
 * 服务端
 * @author zhaoyl
 *
 */
public class Server {

    protected Server() throws Exception
    {
        HelloWorldImpl helloworldImpl = new HelloWorldImpl();
        ServerFactoryBean svrFactory = new ServerFactoryBean();
        //设置服务接口类
        svrFactory.setServiceClass(HelloWorld.class);
        //address 也就是wsdl文件中的 <soap:address location="
http://localhost:9000/Hello" />
        svrFactory.setAddress("
http://localhost:9000/Hello");
        //在浏览器端通过
http://localhost:9000/Hello?wsdl访问生成的wsdl文件
        //设置服务实现接口类
        svrFactory.setServiceBean(helloworldImpl);
        //创建服务
        svrFactory.create();
    }

    public static void main(String args[]) throws Exception {
        new Server();
        System.out.println("Server ready...");

        Thread.sleep(5 * 60 * 1000);
        System.out.println("Server exiting");
        System.exit(0);
    }
}

 

4。服务端

 

package demo.zhaoyl.client;

import demo.zhaoyl.server.HelloWorld;
import org.apache.cxf.frontend.ClientProxyFactoryBean;

/**
 * 客户端
 * 仅仅需要一个与具体技术无关的java接口HelloWorld
 * @author zhaoyl
 *
 */
public final class Client {

    private Client()
    {
    }

    public static void main(String args[]) throws Exception
    {
     
        ClientProxyFactoryBean factory = new ClientProxyFactoryBean();
       
        //设置已发布服务接口
        factory.setServiceClass(HelloWorld.class);

        //为客户端代理bean 设置已经发布的服务地址
        factory.setAddress("
http://localhost:9000/Hello");
       
        //获取已发布服务接口实例
        HelloWorld client = (HelloWorld)factory.create();
       
        System.out.println("Invoke 远程服务接口方法sayHi()....");
       
        //返回客户机器用户名称
        System.out.println(client.sayHi(System.getProperty("user.name")));
       
        System.exit(0);
    }

}

启动服务

运行客户端

结果:

Invoke 远程服务接口方法sayHi()....
Hello zhaoyl

分享到:
评论

相关推荐

    使用Simple Frontend+Aegis方式发布并获取webservice

    在本文中,我们将探讨如何使用Apache CXF框架的Simple Frontend和Aegis绑定来发布和获取Web服务。这种方法提供了一种简洁的方式,无需过多的注解或特定于技术的接口,使得我们可以轻松地将任何类转换为Web服务。 1....

    cxf-rt-frontend-simple-3.0.1-API文档-中文版.zip

    赠送jar包:cxf-rt-frontend-simple-3.0.1.jar; 赠送原API文档:cxf-rt-frontend-simple-3.0.1-javadoc.jar; 赠送源代码:cxf-rt-frontend-simple-3.0.1-sources.jar; 赠送Maven依赖信息文件:cxf-rt-frontend-...

    cxf-rt-frontend-jaxrs-3.0.1-API文档-中文版.zip

    赠送jar包:cxf-rt-frontend-jaxrs-3.0.1.jar; 赠送原API文档:cxf-rt-frontend-jaxrs-3.0.1-javadoc.jar; 赠送源代码:cxf-rt-frontend-jaxrs-3.0.1-sources.jar; 赠送Maven依赖信息文件:cxf-rt-frontend-jaxrs...

    cxf-rt-frontend-jaxws-3.0.1-API文档-中文版.zip

    赠送jar包:cxf-rt-frontend-jaxws-3.0.1.jar; 赠送原API文档:cxf-rt-frontend-jaxws-3.0.1-javadoc.jar; 赠送源代码:cxf-rt-frontend-jaxws-3.0.1-sources.jar; 赠送Maven依赖信息文件:cxf-rt-frontend-jaxws...

    cxf-rt-frontend-simple-3.1.13.jar的源码

    cxf中会出现编码问题的cxf-rt-frontend-simple-3.1.13.jar的源码

    Spring+CXF 发布WebService服务

    本文将深入探讨如何使用Spring和CXF来发布WebService服务。 首先,Spring是一个开源的Java平台,它提供了全面的编程和配置模型,用于简化企业级应用的开发。Spring框架的核心特性包括依赖注入、面向切面编程(AOP)...

    cxf-rt-frontend-jaxws-3.0.16.jar 下载

    cxf-rt-frontend-jaxws-3.0.16.jar jar包下载3.0.16版本下载

    CXF框架发布webservice

    2. **自动扫描和发布**:在Spring配置中启用CXF的自动扫描功能,CXF会自动发现并发布实现服务接口的bean。 3. **Spring的WS配置**:使用Spring的`&lt;jaxws:endpoint&gt;`标签来声明式地配置Web服务,包括服务接口、实现...

    使用CXF发布WebService

    当我们谈论“使用CXF发布WebService”时,我们实际上是在讨论如何利用Apache CXF框架创建和部署Web服务。Apache CXF是一个开源的Java框架,专门用于构建和消费Web服务,支持多种协议,如SOAP和RESTful。 首先,我们...

    cxf-rt-frontend

    CXF前端(Frontend)是编程使用的API,用来开发和对外暴露Web Services。CXF提供两种类型的前端(Frontend):JAX-WS和简单前端(Simple Frontend)。本节将详细介绍JAX-WS前端。 JAX-WS前端 Code-First方式 创建...

    CXF使用EndpointImpl发布WebService加入拦截器

    本篇文章将深入探讨如何使用CXF的`EndpointImpl`类来发布一个WebService,并加入拦截器。 首先,我们要理解`EndpointImpl`是CXF框架用于构建和配置Web服务端点的核心类。通过实例化这个类,我们可以自定义服务的...

    SpringBoot框架及CXF发布WebService

    **SpringBoot框架** SpringBoot是由Pivotal团队提供的全新框架,其设计目标是简化Spring应用...这两个部分可以作为学习和实践SpringBoot发布和消费Web服务的起点,帮助开发者深入理解SpringBoot与CXF的协同工作方式。

    WebService开发服务端的两种方式:jdk、cxf

    本文将详细介绍使用JDK和CXF两种方式来开发WebService服务端。 一、JDK原生实现WebService(JAX-WS) 1. **JAX-WS概述**:Java API for XML Web Services (JAX-WS) 是Java平台上用于构建Web服务和客户端的API。它...

    springboot整合CXF发布webservice和客户端调用

    - 在SpringBoot主类中,使用`@EnableCxfRsServer`开启CXF支持,并配置服务地址。 - 对于客户端调用,可以使用CXF的`JaxWsProxyFactoryBean`创建服务代理对象,然后调用其方法进行服务调用。 4. **项目结构** - `...

    使用CXF和camel-cxf调用webservice

    在IT行业中,Web服务是一种广泛使用的通信方式,它允许不同系统之间通过网络交换数据和执行功能。Apache CXF和camel-cxf是两个流行的开源框架,它们可以帮助开发者轻松地创建、消费和集成Web服务。本篇文章将详细...

    webService(基于cxf)的完整例子

    例如,可以使用`@WebService`注解标记一个Java类为Web服务接口,并使用`@Path`注解来定义RESTful服务的URL路径。 4. **CXF服务部署**:CXF提供多种部署方式,包括独立服务器、Tomcat等应用服务器,以及Spring容器。...

    使用cxf发布的webservice服务

    总的来说,“使用CXF发布的WebService服务”涉及到以下几个关键步骤:定义服务接口和实现,配置CXF服务端点,部署服务,以及生成和使用客户端代理。通过这个“employeeServiceForCxf”示例,初学者可以清晰地了解到...

    通过cxf发布webservice需要的一些jar

    在Java世界中,Apache CXF是一个广泛使用的开源框架,它允许开发者创建和消费Web服务。CXF这个名字来源于“CXF = XFire + Celtix”,这两个项目在2006年合并成为了现在的CXF。本篇文章将详细介绍通过Apache CXF发布...

    CXF+Spring+Tomcat发布WebService

    【标题】"CXF+Spring+Tomcat发布WebService"涉及的是使用Apache CXF框架与Spring框架结合,在Tomcat服务器上部署和消费Web服务的过程。这是一个常见的企业级应用开发场景,特别是对于实现基于SOAP协议的Web服务。...

Global site tag (gtag.js) - Google Analytics